从PowerShell连接到SQL Server数据库

Joh*_*han 31 sql-server powershell connection-string

我已经在网上看了一会儿,发现了许多类似的问题,但由于某种原因,我似乎无法让这个工作.

我只是想连接到SQL服务器数据库并将查询结果输出到文件 - 请参阅下面的PowerShell脚本.我不确定的是如何将用户ID和密码集成到连接字符串中.

$SQLServer = "aaaa.database.windows.net"
$SQLDBName = "Database"
$uid ="john"
$pwd = "pwd123"
$SqlQuery = "SELECT * from table;"
$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)

$DataSet.Tables[0] | out-file "C:\Scripts\xxxx.csv"
Run Code Online (Sandbox Code Playgroud)

收到以下错误消息:

使用"1"参数调用"Fill"的异常:"此版本的SQL Server不支持Windows登录."

Aar*_*sen 25

Integrated SecurityUser ID\ Password认证是互斥的.要以运行代码的用户身份连接到SQL Server User ID,请Password从连接字符串中删除和删除:

$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True;"
Run Code Online (Sandbox Code Playgroud)

要连接特定凭据,请删除Integrated Security:

$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; User ID = $uid; Password = $pwd;"
Run Code Online (Sandbox Code Playgroud)


ojk*_*ojk 19

在连接字符串中将Integrated security更改为false.

您可以通过使用您拥有的用户名/密码打开SQL管理工作室来检查/验证这一点,并查看是否可以从那里连接/打开数据库.注意!也可能是防火墙问题.


小智 5

# database Intraction

$SQLServer = "YourServerName" #use Server\Instance for named SQL instances!
$SQLDBName = "YourDBName"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; 
User ID= YourUserID; Password= YourPassword" 
$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() 

#End :database Intraction
clear
Run Code Online (Sandbox Code Playgroud)