我正在编写一个Powershell脚本,该脚本应该连接并查询数据库(由Azure托管)。我可以使用AzureAD ID毫无问题地连接到SSMS。但是,我无法在Powershell中执行相同的操作。我将这种模式用于我的连接字符串:
"Server=tcp:myserver.database.windows.net,1433;Authentication=Active Directory Password;Database=myDataBase;UID=myUser@myDomain;PWD=myPassword;"
请清楚一点,连接字符串可以正常工作,并且数据库管理员告诉我我拥有所有必需的权限。可能的原因是什么?我尝试了Invoke-SqlCMD和ADO.net。请帮忙!
答案 0 :(得分:0)
这是我作为测试运行的一段代码,它运行良好。
$server = "tcp:thesqlservername.database.windows.net,1433"
$database = "testdb"
$adminName = "testuser01@mytenantname.onmicrosoft.com"
$adminPassword = "TestPassword"
$connectionString = "Server=$server;Database=$database;User ID=$adminName;Password=$adminPassword;authentication=Active Directory Password;"
$connection = New-Object -TypeName System.Data.SqlClient.SqlConnection($connectionString)
$ds = new-object "System.Data.DataSet" "dsPersonData"
$q = @"
SELECT * FROM [SalesLT].[Customer]
"@
$da = new-object "System.Data.SqlClient.SqlDataAdapter" ($q, $connection)
$da.Fill($ds)
$dtPerson = $ds.Tables[0]
我创建了一个演示版Azure SQL数据库,在Azure中的SQL Server上将测试用户设置为“活动目录admin”,并在桌面上安装了smss(管理工作室)进行测试。
您遇到什么错误?