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

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

我有一个带有 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/

相关文章:

deployment - 使用 SQL 数据库将 MVC 4 部署到 Azure 网站

sql-server - SSIS 从 2008R2 升级到 2017 - 连接到 OLEDB 数据源时脚本任务失败

c# - 如何在 C# 中存储 SQL 查询的结果字符串

c# - 在 Azure 中使用事件日志(在事件查看器中写入)

azure - 如何访问Azure用户信息?

Azure:是否可以在没有虚拟机的情况下创建休息服务?

c# - Azure 中的 Machine.config 替代方案

sql - 如何从存储在MS SQL server表中的以下数据中获取结果集中的以下顺序?

java - 将 Oracle 或 Sql Server DDL 转换为 Derby

azure - 本地数据库不会部署到 Azure