可以从其他计算机从SSMS连接到SQL Server,但不能从Powershell连接到网络中的SQL Server

时间:2018-11-09 10:35:23

标签: sql-server powershell

我正在尝试从Powershell连接到SQL Server并收到此错误

  

使用“ 0”参数调用“ Open”的异常:“目标主体   名称不正确。无法生成SSPI上下文。”   C:\ Users \ Musawwir \ Downloads \远程访问db.ps1:10 char:1   + $ Connection.Open()   + ~~~~~~~~~~~~~~~~~~       + CategoryInfo:未指定:([],MethodInvocationException       + FullyQualifiedErrorId:SqlException异常,使用“ 1”参数调用“填充”:

我可以通过SSMS从其他计算机连接到SQL SERVER,但是不能通过powershell连接,脚本也可以在本地计算机上正常运行。

这是我正在使用的代码:

[string] $Server= "tcp:DESKTOP-J9UQ90E,1433"
[string] $Database = "Eshop"


[string] $SQLQuery= "[dbo].[usp_getCustomerAge]"


$Connection = New-Object System.Data.SQLClient.SQLConnection
$Connection.ConnectionString = "server='$Server';database='$Database';Connection Timeout=300;Integrated Security=TRUE;UID=ali;PWD=1234"
$Connection.Open()
$Command = New-Object System.Data.SQLClient.SQLCommand
$Command.Connection = $Connection
$Command.CommandText = $SQLQuery
$Command.CommandTimeout=500

$adp = New-Object System.Data.SqlClient.SqlDataAdapter $Command
$data = New-Object System.Data.DataSet 
$adp.Fill($data) | Out-Null


$data2 = ''
$emp = ''

foreach($Row in $data.Tables.Rows){
 [string]$C_name = $Row[0]

  $C_name
  $data2= $data2+ "|"+$C_name
  $C_name = $C_name+"|"
$C_name | out-file "d:\\test4.txt" -Append


}
$Connection.Close()

#$data2 | out-file "d:\\test4.txt"

1 个答案:

答案 0 :(得分:0)

用户ali无法访问存储过程..将用户从ali更改为sa并将集成安全性更改为false解决了问题