【问题标题】:Connecting to SQL Server Database with Windows Authentication?使用 Windows 身份验证连接到 SQL Server 数据库?
【发布时间】:2011-10-27 06:56:22
【问题描述】:

当用户尝试在我的 ASP MVC 3 应用程序中通过 Windows 身份验证连接到 SQL Server 数据库时,使用以下连接字符串:

<add name="btnintranetContext" connectionString="Data Source=BTN-SERVER;Initial Catalog=Intranet;Integrated Security=SSPI;MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/>

他们得到以下错误:

Cannot open database "Intranet" requested by the login. The login failed.
Login failed for user 'User'. 

我明白这意味着什么,这意味着我没有授予该用户访问数据库的权限,但我希望用户能够访问该数据库,而不必授予他们所有访问权限。我尝试在我的连接字符串中指定一个特定的数据库用户,如下所示:

<add name="btnintranetContext" connectionString="Data Source=BTN-SERVER;Initial Catalog=Intranet;User Id=mylogin;Password=mypassword;MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/>

但我收到一个新错误:

Login failed for user 'mylogin'.
The provider did not return a ProviderManifestToken string.

但我确定 mylogin 可以访问数据库,因为当我尝试使用 Windows 身份验证连接字符串访问数据库时,它可以工作。但是出于安全原因,我不想让使用我的应用程序的每个人都可以访问数据库,这就是我尝试在连接字符串中指定用户的原因。

来自我的 web.config 文件的其他信息:

<authentication mode="Windows" />
<identity impersonate="true" />
<trust level="Full"/>
<authorization>
      <deny users="?" />
      <allow users="*" />
</authorization>

【问题讨论】:

    标签: sql-server asp.net-mvc-3 connection-string windows-authentication


    【解决方案1】:

    设置是否可行,然后让运行 IIS 网站的用户(通常默认为 NETWORK SERVICE)访问数据库。
    如果由于某种原因无法将 impersonate 设置为 false,则应改用 SQL 身份验证。

    【讨论】:

    • 如果我将 impersonate 设置为 false,则在 IIS 上整个应用程序都会失败。我已授予网络服务对数据库的访问权限,但它仍然失败。我将如何使用 SQL 身份验证?将数据库更改为使用 SQL 身份验证,然后在连接字符串中传递一个 SQL 用户,将我的 User Id=.. 和 Password=... 替换为 SQL 用户?
    • 是的。这正是你必须做的。
    • 好的,我刚刚创建了一个 SQL 用户,并在连接字符串中传递了它的用户 ID 和密码,但我仍然遇到错误:用户 'sqluser' 登录失败。提供者未返回 ProviderManifestToken 字符串。
    • 您是否有机会使用实体框架?如果是这样,您使用的是 DB 优先还是代码优先?
    • 我正在使用 EF,是的,最初我使用的是代码优先,然后在我的应用程序完成后切换到实际数据库。但没关系,我设法修复它,一旦切换到 SQL 和 Windows 身份验证模式,我就忘记重新启动服务器。感谢您的帮助,不胜感激!
    猜你喜欢
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 2019-09-10
    • 2011-04-10
    • 1970-01-01
    相关资源
    最近更新 更多