2013-08-27 50 views
6

我想爲不同的登錄帳戶編寫用戶映射腳本。我已經腳本創建用戶和個人服務器角色,但我不知道如何設置用戶映射與Powershell,我還需要設置Database Role membership,特別是db_backupoperatorPowershell - 用戶映射SQL Server 2012

任何人都知道如何做到這一點與Powershell?

enter image description here

回答

7

假設您的登錄創建

## Creating database user and assigning database role  

#get variables 
$instanceName = "yourInstance" 
$loginName = "testLogin" 
$dbUserName = "testUserName" 
$databasename = "tempdb" 
$roleName = "db_backupoperator" 
$server = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $instanceName 

#add a database mapping 
$database = $server.Databases[$databasename] 
$login = $server.Logins[$loginName] 
if ($database.Users[$dbUserName]) 
{ 
    $database.Users[$dbUserName].Drop() 
} 
$dbUser = New-Object ` 
-TypeName Microsoft.SqlServer.Management.Smo.User ` 
-ArgumentList $database, $dbUserName 
$dbUser.Login = $loginName 
$dbUser.Create() 

#assign database role for a new user 
$dbrole = $database.Roles[$roleName] 
$dbrole.AddMember($dbUserName) 
$dbrole.Alter 
+0

洙,這個作品,就像我以前做的嘗試。它將爲指定的數據庫設置用戶映射,但是,它將具有'dbUserName'作爲用戶,我希望''登錄'在我的情況下是一個組作爲用戶...我將添加代碼爲我所擁有的。 – JMeterX

+0

登錄名和dbUserName有什麼區別? – Demodave

+1

「AddMember」似乎不起作用。 – Demodave