PowerShell から SQL Server データベースに接続する 質問する

PowerShell から SQL Server データベースに接続する 質問する

しばらくオンラインで調べて、多くの同様の問題を見つけましたが、何らかの理由でこれを解決できないようです。

私は 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"

次のエラー メッセージが表示されます。

「1」個の引数で「Fill」を呼び出すときに例外が発生しました: 「このバージョンの SQL Server では Windows ログインはサポートされていません。」

ベストアンサー1

Integrated SecurityおよびUser ID\Password認証は相互に排他的です。コードを実行しているユーザーとして SQL Server に接続するには、接続文字列からUser IDおよび を削除します。Password

$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True;"

特定の資格情報で接続するには、以下を削除しますIntegrated Security:

$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; User ID = $uid; Password = $pwd;"

おすすめ記事