我最近一直在为客户端开发一个ASP.NET项目。该项目是将数据库从旧的Oracle数据库迁移到新的SQL Server 2008数据库。迁移进展顺利,大多数程序都没有花很长时间来修复。但是我们现在遇到了问题,到目前为止我们一直在使用SQL Server身份验证并使用用户名和密码从.NET代码访问数据库。下面显示了连接字符串:
<add key="DatabaseConnectionString" value="Data Source=DATASOURCE;Initial Catalog=DATABASE;User Id=USERID;Password=PASSWORD;"/>
这工作正常但是最近我收到了客户的电子邮件说:
“您可以使用Active Directory帐户代替使用.NET应用程序的本地SQL帐户访问数据库。在web.config中,它会说<domain name>/<username>
而不仅仅是<username>
。“
我感到困惑的是:
我是否必须将SQL Server中的身份验证模式更改为Windows身份验证?
客户是否意味着将其从<username>
更改为<domain>/<username>
或反过来?
在web.config中的位置我需要对用户名进行此更改吗?它在连接字符串中吗?
对此的任何帮助都会很棒。
我也不确定你是否需要知道这一点,但无论如何我已经添加了它......
这是web.config的身份验证部分:
<identity impersonate="true"/>
<authentication mode="Windows"/>
答案 0 :(得分:2)
我是否必须将SQL Server中的身份验证模式更改为Windows身份验证?
不,因为始终启用Windows身份验证。但是,禁用Sql Server身份验证是一种很好的做法。
客户是否意味着将其从“用户名”更改为“域/用户名”
没有。这不仅仅是添加域名。您需要针对活动目录对用户进行身份验证,并使用委派进行sql连接。要使用Windows帐户,您需要决定是否要特定帐户访问Sql Server或登录用户帐户的网站。 我认为第一种方式几乎总是更好。为此,您需要从连接字符串中删除用户标识和密码,并将其替换为“Integrated Security = SSPI”,并将应用程序池标识设置为活动目录用户帐户。在Sql Server中,您需要为此帐户提供执行所需操作的权限。 对于第二种方式,您需要为网站中的用户进行Windows身份验证,并使用委派进行连接。我不知道模仿是否足够。