如何通过PowerShell将具有数据写入和数据读取权限的AAD组添加到Azure数据库

时间:2018-06-20 06:24:59

标签: sql-server azure azure-sql-database azure-active-directory

我有一个带有SQL数据库的Azure SQL Server。我想通过PowerShell向该数据库添加一个具有数据写入和数据读取权限的AAD组。

我不知道该怎么做。有人可以帮忙吗?

3 个答案:

答案 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-AzureADGroupAzureAD 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任务中使用此脚本将用户添加到数据库。可以修改这些声明,以也将用户添加到适当的角色。