C# 为什么要获取UID的服务器名instaid
我正在尝试使用服务帐户访问我的SQL Server数据库。我是这样说的:C# 为什么要获取UID的服务器名instaid,c#,sql,connection-string,C#,Sql,Connection String,我正在尝试使用服务帐户访问我的SQL Server数据库。我是这样说的: <add name="conn" connectionString="Data Source=mtl1sqlitmp3\mtl1sqlitmp3;Initial Catalog=IT_Ops; Integrated Security=SSPI;User ID=service account; Password=password" providerName="System.Data.SqlCli
<add name="conn"
connectionString="Data Source=mtl1sqlitmp3\mtl1sqlitmp3;Initial Catalog=IT_Ops; Integrated Security=SSPI;User ID=service account; Password=password"
providerName="System.Data.SqlClient" />
出于某种原因,它总是给我服务器的用户名称
为什么呢
我必须更改什么才能建立适当的连接
谢谢,您在连接字符串中指定了
integratedsecurity=SSPI
,大概没有意识到这意味着什么。如文件中所述(在许多其他地方):
如果指定了用户ID和密码,并且集成安全性设置为true,则将忽略用户ID和密码,并使用集成安全性
(请注意,“SSPI
”与“True
”的含义相同)
这意味着您正在请求集成安全性。您将使用流程的服务帐户(如果是ASP.Net池)或模拟上下文(如果启用了模拟和约束委派)进行身份验证。如果使用集成安全性,则忽略连接字符串用户名和密码
您应该使用集成安全性,而不是用户名和密码,因此您最好将重点放在使其正常工作上(将流程设置为适当的服务帐户,并授予此帐户必要的权限)。请记住,config中连接字符串中的密码可能会泄漏。为了解决我的问题,我保留了
integratedsecurity=SSPI
,并从连接字符串中删除了UID和PW
相反,我已经在IIS中我的网站的应用程序池的标识选项中配置了我的服务帐户和密码
现在它的工作原理与预期一致
感谢您的帮助哪种sql?MYSQL/MS SQL Server?它是MS SQL Server和我在服务器2012 r2 IIS 8.5上的主机。您的服务器和数据库的名称都是“mtl1sqlitmp3”?
Integrated Security=SSPI
表示“使用windows登录信息”,不幸的是,如果您还提供了用户id/密码,则不会导致错误,尽管它们会被忽略。我认为如果用户ID和密码不存在,则使用Windows安全性;如果用户ID和密码存在,则使用Windows安全性。使用服务帐户连接数据库的最佳做法是什么?
Integrated Security=SSPI