2013-08-27 10 views
6

異なるログインアカウントのユーザーマッピングをスクリプト化しようとしています。 db_backupoperatorPowershell - ユーザーマッピングSQL Server 2012

誰もがこれを行う方法を知って、私は、ユーザーと、個々のサーバーの役割の作成をスクリプト化しているが、私は、私も特に、Database Role membershipを設定する必要がありますPowerShellを使用しユーザーマッピングを設定する方法を見つけ出すことはできません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

スヨンを、この作品、作成されたと仮定すると。これは、指定されたデータベースのUser Mappingを設定しますが、Userとして 'dbUserName'を持ちます。私の場合、Userとなるグループは' login'です...コードを追加します私が持っているもののために。 – JMeterX

+0

ログイン名とdbUserNameの違いは何ですか? – Demodave

+1

"AddMember"は機能していないようです。 – Demodave