2013-08-27 15 views
6

Próbuję zapisać mapowanie użytkowników dla różnych kont logowania. Mam skrypty tworzenie użytkowników i poszczególnych ról serwera, ale nie mogę dowiedzieć się, jak ustawić mapowanie użytkownik z PowerShell, będę również trzeba ustawić Database Role membership w szczególności db_backupoperatorPowershell - Odwzorowanie użytkowników SQL Server 2012

Ktoś wie jak to zrobić z Powershell?

enter image description here

Odpowiedz

7

Przypuśćmy Twój login jest tworzony

## 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, to działa, tak jak moja poprzednia próba nie. Ustawi on Mapowanie Użytkownika dla określonej bazy danych, jednak będzie miał Nazwę "dbUserName" jako Użytkownika, chcę "login", który w moim przypadku jest grupą, która będzie Użytkownikiem ... Dodam kod za to, co mam. – JMeterX

+0

Jaka jest różnica między nazwą logowania i dbUserName? – Demodave

+1

"AddMember" Wydaje się nie działać. – Demodave

Powiązane problemy