2017-06-22 119 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

相關問題