Connecting to SQL Server Database with Windows Authentication?
当用户尝试使用以下连接字符串通过我的ASP MVC 3应用程序中的Windows身份验证连接到SQL Server数据库时:
1 |
他们收到以下错误:
1 2 | Cannot open database"Intranet" requested by the login. The login failed. Login failed for user 'User'. |
我理解这是什么意思,这意味着我还没有授予用户访问数据库的权限,但是我希望用户能够访问数据库而不必授予他们所有对数据库的访问权限。我已经尝试在连接字符串中指定特定的数据库用户,如下所示:
1 |
但是我收到一个新错误:
1 2 | Login failed for user 'mylogin'. The provider did not return a ProviderManifestToken string. |
但是我肯定知道mylogin可以访问数据库,因为当我尝试使用Windows身份验证连接字符串访问数据库时,它可以工作。但是出于安全原因,我不想让使用我的应用程序的每个人都可以访问数据库,这就是为什么我尝试在连接字符串中指定用户的原因。
我的web.config文件中的其他信息:
1 2 3 4 5 6 | <identity impersonate="true" /> <trust level="Full"/> <deny users="?" /> </authorization> |
设置是否可能,然后赋予运行IIS网站的用户(通常默认为NETWORK SERVICE)访问数据库。
如果由于某些原因无法将模拟设置为false,则应改用SQL身份验证。