Azure Datawarehouse/Synapse から単純な select ステートメントを実行しようとしています。認証に Azure Active Directory アカウントを使用していますが、私の場合は SQL サーバー認証を使用できません。
このコマンドは、Powershell 5.1.16299、非 dotnet コア バージョンで完全に正常に機能します。
コード
$ConnectionString = "Server=<Azure DataWarehouse server>;Authentication=Active Directory Password;Initial Catalog=Datawarehouse;UID=<username@company.com>;PWD=<pwd>;Trusted_Connection=False;Encrypt=True;Connection Timeout=60;"
$query = "select top 1 * from Table1"
Invoke-Sqlcmd -ConnectionString $ConnectionString -Query $query -QueryTimeout 40
Powershellバージョン: メジャー マイナー パッチ PreReleaseLabel BuildLabel
6 2 4
SQL Server モジュール バージョン ModuleType バージョン名 ExportedCommands ---------- ------- ---- ---------------- スクリプト 21.1.18218 SqlServer {Add-SqlAvailabilityDatabase、Add-SqlAvailabilityGroupListen…</p>
エラー メッセージ Invoke-Sqlcmd : Keyword not supported: 'authentication'. 行:1 文字:1 + Invoke-Sqlcmd -ConnectionString $ConnectionString -Query $query -Quer ... + ~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidResult: ( :) [Invoke-Sqlcmd]、ArgumentException + FullyQualifiedErrorId : ExecutionFailed、Microsoft.SqlServer.Management.PowerShell.GetScriptCommand
$Error[0].Exception.ToString() 出力 System.ArgumentException: キーワードがサポートされていません: 'authentication'。System.Data.Common.DbConnectionOptions.ParseInternal (辞書) で2 parsetable, String connectionString, Boolean buildChain, Dictionary
System.Data.SqlClient.SqlConnectionString..ctor(String connectionString) の System.Data.SqlClient.SqlConnectionFactory. System.Data.SqlClient.SqlConnection の System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey キー) の System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey キー、DbConnectionPoolGroupOptions poolOptions、DbConnectionOptions& userConnectionOptions) で CreateConnectionOptions (以前の String connectionString、DbConnectionOptions) Microsoft.SqlServer.Management.PowerShell.ExecutionProcessor の System.Data.SqlClient.SqlConnection..ctor(String connectionString) の .set_ConnectionString(String value)。Microsoft.SqlServer.Management.PowerShell.ExecutionProcessor..ctor(GetScriptCommand sqlCmdCmdLet) での CreateSqlConnection() Microsoft.SqlServer.Management.PowerShell.GetScriptCommand.ProcessRecord() での