sql-server - 可以从其他计算机从 SSMS 连接到 SQL Server,但无法从 powershell 连接到网络中的 SQL Server
问题描述
我正在尝试从 powershell 连接到 sql server 并收到此错误
使用“0”参数调用“Open”的异常:“目标主体名称不正确。无法生成 SSPI 上下文。” 在 C:\Users\Musawwir\Downloads\远程访问 db.ps1:10 char:1 + $Connection.Open() + ~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified : ( [], MethodInvocationException + FullyQualifiedErrorId : 使用“1”参数调用“Fill”的 SqlException 异常:
我可以通过 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"
解决方案
用户 ali 无法访问存储过程 .. 将用户从 ali 更改为 sa 并将集成安全性设置为 false 解决了问题
推荐阅读
- julia - 将标签传递给 Plots.jl 直方图
- javascript - 如何在数组中表示书籍内容
- javascript - 如何使用网络浏览器下载api?
- automation - 是否可以自动化 NetlifyCMS 为网站添加书签?
- css - 带按钮的 mat-form-field 前缀和后缀位置
- python - 提取列表子集以绘制的 Pythonic 方法
- css - 如何更改 nuxt gmap 标记图标大小?
- python - Python:CalledProcessError,命令返回非零退出状态 1
- node.js - 在 NodeJS 中测试 http.Server.close 错误
- javascript - 无法使用 next.js 加载静态资产