通过 PowerShell 连接到 SQL
Posted
技术标签:
【中文标题】通过 PowerShell 连接到 SQL【英文标题】:Connecting to SQL via PowerShell 【发布时间】:2020-01-23 11:30:00 【问题描述】:我正在尝试 Server。我尝试使用下面的代码,但我不断收到同样的错误。谁能解释为什么会这样?
param
(
[Parameter(Mandatory)] #servername
[string]$SQLServer,
# [Parameter(Mandatory)] #database
# [string]$SQLDBName,
[Parameter(Mandatory)] #user ID
[string]$uid
)
$pwd = ConvertTo-SecureString "xxx"-AsPlainText -Force #heslo
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; User ID= $uid; Password= $pwd"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = 'StoredProcName'
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
错误如下所示:
使用“1”参数调用“Fill”的异常:“用户“目标”登录失败。” 在 C:\Users\salema\Documents\SQL.ps1:24 char:1 + $SqlAdapter.Fill($DataSet) + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : SqlException
【问题讨论】:
错误非常明显。用户“目标”是否具有适当的 SQL 权限来登录/执行操作? 是的,它只是为此目的而制作的测试帐户。 【参考方案1】:需要调用Open()
方法打开SQL连接。尝试添加
$pwd = ConvertTo-SecureString "xxx"-AsPlainText -Force #heslo
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; User ID= $uid; Password= $pwd"
# Open the SQL connection
$SqlConnection.Open()
【讨论】:
以上是关于通过 PowerShell 连接到 SQL的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Powershell 和 PSSessionConfiguration 远程连接到 Exchange 服务器
找不到引用合同的默认端点元素:通过 Powershell cmdlet 连接到 WCF 端点
如何在 ssms 中更改用户通过 powershell 连接到数据库引擎的权限?
无法通过 Powershell 或 Visual Studio 连接到受保护的 Azure Service Fabric 群集
通过powershell Enter-PSSession连接到SQL Server 2012(使用Windows身份验证)