2013-08-27 4 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

Soo, это работает, так же, как моя предыдущая попытка сделал. Он установит User Mapping для указанной базы данных, однако у него будет 'dbUserName' как Пользователь, я хочу' login', который в моем случае является группой, которая будет пользователем ... Я добавлю код за то, что у меня есть. – JMeterX

+0

В чем разница между именем входа и именем dbUserName? – Demodave

+1

«AddMember» Кажется не работает. – Demodave