Sql server 使用其他域帐户连接到SQL server

Sql server 使用其他域帐户连接到SQL server,sql-server,database,powershell,sql-server-2012,Sql Server,Database,Powershell,Sql Server 2012,我当前正在尝试使用具有查询服务器权限的其他域/用户名连接到SQL server。这是powershell,用于测试连接是否正常工作 $connectionString = "Server=<my_server>;Database=<db>;User ID=<domain>\<testuser>;Password=<password>;Trusted_Connection=False;Encrypt=True;TrustServ

我当前正在尝试使用具有查询服务器权限的其他域/用户名连接到SQL server。这是powershell,用于测试连接是否正常工作

$connectionString = "Server=<my_server>;Database=<db>;User ID=<domain>\<testuser>;Password=<password>;Trusted_Connection=False;Encrypt=True;TrustServerCertificate=True;";
$connection = New-Object System.Data.SqlClient.SqlConnection($connectionString);
$connection.Open();
$connection.Close(); 
$connectionString=“服务器=;数据库=;用户ID=\;密码=;可信连接=假;加密=真;可信服务器证书=真;”;
$connection=newobjectsystem.Data.SqlClient.SqlConnection($connectionString);
$connection.Open();
$connection.Close();
我最终得到了这个错误

使用“0”参数调用“Open”时出现异常:“用户“”的登录失败。”

我确信用户名和密码是正确的。这是客户端设置中的内容


但是我想知道是否需要向连接字符串添加其他参数?

此任务需要自动化,但解决方案是使用-Credentials连接到服务器以登录到所需的用户

$computerName = 'SQLServer' 

$adminUsername = 'username'
$adminPassword = ConvertTo-SecureString 'password' -AsPlainText -Force
$adminCreds = New-Object PSCredential $adminUsername, $adminPassword

Invoke-Command -ScriptBlock {
$SQLServer = "sqlserver"
$SQLDBName = "database"
$uid ="account"
$pwd = "password"
$SqlQuery = "SELECT TOP (12) [attribute1]
 FROM [table].[dbo].[AAG00200];"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True; User ID = $uid; Password = $pwd;"
$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)

} -ComputerName $computerName -Credential $adminCreds


在连接字符串中包含用户ID和密码会导致它使用SQL登录身份验证,而这将不适用于Windows/域凭据。您需要在PowerShell中使用模拟来更改进行SQL连接的Windows/域帐户(在连接字符串中使用
Integrated Security=true
)。您需要在所需的域帐户下运行PS脚本(例如,使用RUNAS)并在连接字符串中指定
Integrated Security=SSPI
。@DanGuzman不幸的是,我需要查询DB服务器的域帐户无法登录到我运行脚本的服务器。我的帐户也无法登录DB服务器。这是否意味着此任务不可能完成,或者我错了?@okmanl,SQL身份验证wo如果您不能允许域帐户在本地登录,则uld会更容易。使用RunAs/netonly启动PowerShell,程序将以您当前登录的用户身份在您的本地计算机上执行,但与网络上其他计算机的任何连接都将使用指定的用户帐户进行。如果没有/netonly,则所有内容都将在您的本地计算机上执行我将在指定的用户帐户下运行。