Sql server 使用不同的windows用户帐户登录SQL Server
我使用其他windows用户凭据登录SQL Server数据库时遇到问题 这是我的代码:Sql server 使用不同的windows用户帐户登录SQL Server,sql-server,powershell,Sql Server,Powershell,我使用其他windows用户凭据登录SQL Server数据库时遇到问题 这是我的代码: $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $SqlConnection.ConnectionString = "Server=$SQLServer;UID=DOMAIN\DiffUser;PWD=password;Integrated Security=True;" $SqlCmd = New-Obj
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server=$SQLServer;UID=DOMAIN\DiffUser;PWD=password;Integrated Security=True;"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet) | Out-Null
$SQLConnection.Close()
但是,当我运行它时,会出现以下错误:
使用“1”参数调用“Fill”时出现异常:“用户'DOMAIN\CurrentUser'登录失败。”
代码似乎没有使用我提供的连接字符串,而是试图以我自己的身份登录
我不确定我做错了什么
如果我删除integratedsecurity=True代码>从连接字符串中,我得到了预期的错误
使用“1”参数调用“Fill”时出现异常:“用户“域\扩散器”登录失败。”
我对这里发生的事情相当困惑。任何帮助都将不胜感激。集成安全将使用当前上下文。这不是可以在连接字符串中设置的内容。如果需要使用当前上下文以外的上下文,则需要在打开连接之前模拟该上下文
也许WindowsIdentity.Impersonate会有用。您通常需要这些凭证。(没有凭据的模拟非常危险。)
如果要使用SSMS模拟以进行测试,按住shift键并右键单击SSMS将显示“以不同用户身份运行”选项。作为所需用户登录后,SSMS将作为该用户运行