2013-08-27 6 views
6

다른 로그인 계정에 대해 사용자 매핑을 스크립팅하려고합니다. db_backupoperatorPowershell - User Mapping SQL Server 2012

사람이 작업을 수행하는 방법을 알고, 내가 사용자와 개별 서버 역할의 생성 스크립트,하지만 나는, 나는 또한 특히, Database Role membership을 설정해야합니다 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을 설정할 것입니다. 그러나 사용자로서'dbUserName'을 가질 것이고, 저는'login'을 내 경우에 User가 될 그룹으로 만들고 싶습니다 ... 코드를 추가 할 것입니다 내가 가지고있는 것을 위해. – JMeterX

+0

로그인 이름과 dbUserName의 차이점은 무엇입니까? – Demodave

+1

"AddMember"가 작동하지 않는 것 같습니다. – Demodave