Sql server 2008 r2 在远程计算机上运行exe时PSEXEC凭据委派问题
我有一个简单的exe,它只连接到SQL server,并在远程机器上执行Sql server 2008 r2 在远程计算机上运行exe时PSEXEC凭据委派问题,sql-server-2008-r2,psexec,Sql Server 2008 R2,Psexec,我有一个简单的exe,它只连接到SQL server,并在远程机器上执行select。在我的场景中,我有三台机器:A、B和C 我正在破坏机器A的PSExec,如下所示: & C:\PSTools\PSExec.exe \\MachineB C:\connectsql.exe -u username -p password "Data Source=machineC;Initial Catalog=AllDocs;Integrated Security=SSPI;User id=user
select
。在我的场景中,我有三台机器:A
、B
和C
我正在破坏机器A
的PSExec
,如下所示:
& C:\PSTools\PSExec.exe \\MachineB C:\connectsql.exe -u username -p password
"Data Source=machineC;Initial Catalog=AllDocs;Integrated Security=SSPI;User id=username;Password=pwd;"
在机器B
上执行exe时,会尝试连接到机器C
上的SQL server(基于exe中指定的连接字符串),其中包括用户名和密码,如下所示:
& C:\PSTools\PSExec.exe \\MachineB C:\connectsql.exe -u username -p password
"Data Source=machineC;Initial Catalog=AllDocs;Integrated Security=SSPI;User id=username;Password=pwd;"
用户名和密码是正确的。但我得到了这个错误:
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'
但是,如果我将exe中的连接字符串更改为连接到机器B
本身上的SQL server,我看不到问题
此外,如果我在机器B上本地运行exe,它将成功连接到机器C上的SQL
你知道我如何解决这个问题吗,这样当
PSExec
在机器A
上运行时,机器B
上的exe应该能够连接到机器C
上的sql?集成安全=SSPI连接字符串中的code>表示您正试图通过Windows身份验证进行连接。由于您提供的是用户id
和密码
,因此可以删除集成安全=SSPI代码>我尝试删除集成安全性=SSPI;从连接字符串,并在计算机B上本地运行它,它现在抱怨“用户名为”的用户登录失败,通过在WindowsServer 2008r2中设置以下内容解决:-信任此计算机以委派给任何服务(仅限Kerberos)。