我有一个带有 SQL 数据库的 Azure SQL Server。我想通过 PowerShell 向该数据库添加具有数据写入和数据读取权限的 AAD 组。
我不知道该怎么做。有人可以帮忙吗?
最佳答案
将用户添加到角色通常是通过 SQL 语句完成的。这就是使用 SQL 完成此操作的方式。
CREATE USER [group name]
FROM external provider
DEFAULT_SCHEMA dbo
添加用户后,您可以通过发出以下语句将其添加到组中;
ALTER ROLE db_datareader ADD MEMBER [group_name]
ALTER ROLE db_datawriter ADD MEMBER [group_name]
请注意,在 SSMS 中,您必须位于要将用户添加到的数据库的上下文中。 Azure SQL 不支持 USE 语句,因此请确保选择正确的数据库。
要通过 powershell 执行此操作,您可能需要使用以下 CmdLet,Add-RoleMember ,但我之前没有在 Azure SQL Server 中使用过这些 CmdLets。
这是通过 Powershell 将用户添加到 SQL 数据库的一种方法;
$Instance = $ENV:AzureSQLServer + ".database.windows.net"
$Query = "CREATE USER [$ENV:AdUser] FROM EXTERNAL PROVIDER"
$ConnString = "Server=" + $Instance + ";Database=master;Authentication=Active Directory Password;UID=" + $Env:SqlAdminUser + ";Password=" + $Env:SqlAdminPass + ";Trusted_Connection=false;Encrypt=True;Connection Timeout=30;"
Invoke-SQlCmd -ConnectionString $ConnString -Query $Query
我们在 Jenkins 的 PowerShell 任务中使用此脚本将用户添加到数据库。可以修改语句以将用户添加到适当的角色。
关于sql-server - 如何通过 PowerShell 将具有数据写入和数据读取权限的 AAD 组添加到 Azure DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50941557/