使用AzAD帐户连接AzSQL时,还需要向ConnectionContext
添加哪些其他属性?
$srv = new-object ('Microsoft.SqlServer.Management.Smo.Server') "<>.database.windows.net"
$srv.ConnectionContext.LoginSecure = $false
$srv.ConnectionContext.Authentication = [Microsoft.SqlServer.Management.Common.SqlConnectionInfo+AuthenticationMethod]::ActiveDirectoryPassword
$srv.ConnectionContext.Login = "<>@<>.onmicrosoft.com"
$srv.ConnectionContext.Password = "<>"
$srv.ConnectionContext.Connect()
错误:MethodInvocationException: Exception calling "Connect" with "0" argument(s): "Failed to connect to server <>.database.windows.net."
ActiveDirectoryPassword method在SSMS中运行良好。我尝试运行Read-SqlTableData
而不是调用TSQL查询。
Read-SqlTableData -InputObject $srv.Databases["TestDB"].Tables["TestTable"] -TopN 5
预期屏幕截图或屏幕截图GIF,答案代码适用于使用Read-SqlTableData
的AzSQL上的AzAD用户ID。
3条答案
按热度按时间ou6hu8tu1#
正如前面所讨论的,这只是因为Read-SqlTableData尚未更新以支持-AccessToken参数。
我已经收到了一些其他cmdlet的请求。所以我会尽快拿到
hiz5n14c2#
请确保以管理员身份登录。用户必须具有azure广告管理员角色才能连接服务器。
并确保用户具有Azure PortalIAM访问控制的目录读取器角色。
还要确保您已经为SQL Server分配了AAD管理员。尝试在azure ad中创建服务主体(如果尚未存在),然后给予db_reader或db_writer或db_owner权限。
或写入权限(如果需要)
或所有者许可(如果需要)
或Create Azure AD users in azure sql DB using service principals - Azure SQL Database | Microsoft Docs
请查看以下参考:
fhity93d3#
AccessToken
参数已添加到SqlServer Module的22.0.59
版本中的cmdlet中。输出