如何使用PowerShell将用户添加到SQL Server角色?

时间:2017-06-22 15:51:59

标签: sql-server powershell azure azure-sql-database smo

我需要一个关于如何在Azure SQL数据库中为用户分配固定服务器角色的工作示例。我似乎甚至无法访问Roles集合:

$DBServerBulkRole = $DBServer.Roles | where {$_.Name -eq 'bulkadmin'};
$DBServerBulkRole.AddMember($DBLoginName);

这会生成

  

尝试枚举集合时发生以下异常:“版本12.0.600 SqlAzureDatabase上不支持操作。”

1 个答案:

答案 0 :(得分:2)

https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-addrolemember-transact-sql

这表明:“此功能将在未来版本的Microsoft SQL Server中删除。请避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。请改用ALTER ROLE。”

我建议你基本上在powershell中重写一个函数来执行相同的调用但是使用alter role命令。这应该可以解决您的问题。 Azure的SQL实现略有不同,并且某些命令不可用。此外,如文档中所示,我认为现在这是一个弃用的过程。

-- Syntax for SQL Server (starting with 2012) and Azure SQL Database  

ALTER ROLE  role_name  
{  
       ADD MEMBER database_principal  
    |  DROP MEMBER database_principal  
    |  WITH NAME = new_name  
}  
[;]  

自: https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-role-transact-sql

希望这有帮助!