2017-06-22 84 views
1

我需要一个有关如何将固定服务器角色分配给Azure SQL数据库中的用户的工作示例。看来我甚至不能访问Roles集合:如何使用PowerShell将用户添加到SQL Server角色?

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

这产生

出现以下异常,而试图枚举集合:“操作不支持版本的12.0.600 SqlAzureDatabase。”

回答

2

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

此指出:“该功能将在Microsoft SQL Server的未来版本中删除避免在新的开发工作中使用该功能,并计划修改当前使用此功能的应用程序使用。改为角色。“

我建议你在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

希望这有助于!

+0

有关使用此语法创建函数的指导,我建议您研究invoke-sqlcmd:https://docs.microsoft.com/en-us/sql/powershell/invoke-sqlcmd-cmdlet – Mitchell

相关问题