我有一个带有SQL数据库的Azure SQL Server。我想通过PowerShell向该数据库添加一个具有数据写入和数据读取权限的AAD组。
我不知道该怎么做。有人可以帮忙吗?
答案 0 :(得分:1)
我假设您要将SQL数据库的AAD组设置为AAD管理员。
在这种情况下,您可以使用Set-AzureRmSqlServerActiveDirectoryAdministrator
:
Set-AzureRmSqlServerActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -DisplayName "DBAs" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353b"
结果:
ResourceGroupName ServerName DisplayName ObjectId
----------------- ---------- ----------- --------
ResourceGroup01 Server01 DBAs 40b79501-b343-44ed-9ce7-da4c8cc7353b
注意:
您只能在启用安全性的情况下设置AAD组。
请告诉我这是否有帮助!
答案 1 :(得分:0)
首先必须使用e创建一个ADD组。 G。 New-AzureADGroup
的AzureAD module cmdlet。
然后,您必须使用New-AzureRmRoleAssignment
cmdlet将所需的角色分配给所需的资源(例如,SQL Server的SQL DB贡献者角色)。
进一步阅读:Manage role-based access control with Azure PowerShell
答案 2 :(得分:0)
通常使用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,但是我以前没有将这些CmdLets与Azure SQL Server一起使用。
这是一种通过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任务中使用此脚本将用户添加到数据库。可以修改这些声明,以也将用户添加到适当的角色。