2013-08-27 15 views
6

Sto tentando di eseguire il mapping degli utenti per diversi account di accesso. Ho sceneggiato la creazione di utenti e ruoli server individuali, ma io non riesco a capire come impostare Mapping utenti con PowerShell, ho anche bisogno di impostare il Database Role membership, in particolare, db_backupoperatorPowerShell - Mappatura utente SQL Server 2012

Qualcuno sa come fare con PowerShell?

enter image description here

risposta

7

Supponendo tuoi dati di accesso viene creato

## 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, questo funziona, proprio come il mio tentativo precedente ha fatto. Imposterà la mappatura utente per il database specificato, tuttavia, avrà il 'dbUserName' come utente, voglio il' login' che nel mio caso è un gruppo per essere l'utente ... Aggiungerò il codice per quello che ho. – JMeterX

+0

Qual è la differenza tra il nome di accesso e dbUserName? – Demodave

+1

"AddMember" Non sembra funzionare. – Demodave

Problemi correlati