Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么要获取UID的服务器名instaid_C#_Sql_Connection String - Fatal编程技术网

C# 为什么要获取UID的服务器名instaid

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

我正在尝试使用服务帐户访问我的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.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