连接字符串使用域用户?

时间:2012-02-16 14:17:49

标签: asp.net web-config

以前,对于我们所有的asp.net应用程序,我们一直在SQL Server中使用sysadmin用户来连接和添加/更新/删除/获取数据。我们的SQL管理员希望删除该帐户并创建域帐户,以便我们可以在.net应用程序中使用该帐户。

我当前的连接字符串是:

 
name="name" connectionString="Data Source=server;Initial Catalog=database;Persist Security Info=True;User ID=user;Password=password" providerName="System.Data.SqlClient"

使用域帐户的连接字符串是什么?

我试过了:

name="name" connectionString="Data Source=server;Initial Catalog=database;Persist Security Info=True;User ID=domain\user;Password=password" providerName="System.Data.SqlClient"

它不起作用。

使用域帐户连接到SQL Server有不同的方法吗?

感谢您的帮助。

5 个答案:

答案 0 :(得分:32)

查看connectionstrings.com的每个可能的变化 - 我一直使用的非常方便的资源

具体来说,您想要这种格式:

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

当然,这仅适用于有问题的域帐户是打开连接的帐户。

没有简单的方法来连接任意凭据 - 但您可以impersonate有问题的用户然后连接。

这可能有点痛苦。如果用户在本地网络上(或您控制其浏览器配置),则另一种方法是在您的站点上使用Kerberos身份验证。页面将与相关用户的权限一起提供 - 然后您可以使用上面的连接字符串,IIS将使用每个用户的相应凭据连接到Db。从安全角度来看,这一点特别有用,因为Db能够按用户进行审计,权限可以是每用户/行/列,而不是每个应用程序。

答案 1 :(得分:6)

如果您想使用其他用户帐户,则登录用户可以选择两种方式。

  

选项1

您可以将用户添加到应用程序池标识。

为此,请进入应用程序池的设置并编辑身份以使用您想要的用户。

  

选项2

在Web配置中添加:

<identity impersonate="true" userName="Domain\User" password="Password" />

并使用此连接搅拌:

<add name="Name" connectionString="Data source=SqlServer;Initial Catalog=DbName;Integrated security=True" providerName="System.Data.SqlClient"/>

更多详情请参阅: https://msdn.microsoft.com/en-us/library/134ec8tc.aspx

此处还发现了另一篇好文章 https://www.codeproject.com/tips/520341/implement-impersonation-in-asp-net

答案 2 :(得分:4)

是的,试试这个:

Data Source=server;Initial Catalog=database;Integrated Security=SSPI;

这指定您希望在仍尝试使用SQL Server身份验证的情况下使用集成Windows身份验证(即使您输入的用户名看起来像Windows域/用户帐户SQL服务器仍将其视为标准SQL Server身份验证)< / p>

另请查看connectionstrings.com

答案 3 :(得分:4)

使用集成安全性:

Integrated Security=SSPI

哪个有变体:

Trusted_Connection=True

可以在connectionstrings.com上找到不同的连接字符串(适用于各种数据库)。

使用这两种方法,您需要确保应用程序在您需要登录的帐户下运行。

答案 4 :(得分:2)

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

以上是针对SQL Server实例的Windows身份验证的连接字符串。