2011-01-11 1 views
2

새로운 SQL Server 데이터베이스를 만드는 PowerShell 스크립트가 있습니다. 이것은 SharePoint 2010 구현을위한 콘텐츠 데이터베이스가 될 것입니다.SQL Server PowerShell 공급자 및/또는 SMO를 사용하여 새 로그인을 만드는 방법은 무엇입니까?

일단 내가 만든 SharePoint 팜 계정이되도록 DBO를 설정해야하며 다른 서비스 계정에 사용 권한을 할당해야합니다.

누구나 SMO와 SQL Server 용 PowerShell 공급자를 사용하여이 작업을 수행하는 방법에 대한 아이디어가 있습니까? DB를 소유자를 설정

답변

4

단순히 충분하다 :

PS SQLSERVER:\SQL\MyServer\MyInstance\Databases\MyDatabase> $db = get-item . 
PS SQLSERVER:\SQL\MyServer\MyInstance\Databases\MyDatabase> $db.SetOwner('sa') 
PS SQLSERVER:\SQL\MyServer\MyInstance\Databases\MyDatabase> $db.alter() 
#These two steps aren't necessary, but if you want to see the change 
PS SQLSERVER:\SQL\MyServer\MyInstance\Databases\MyDatabase> $db.Refresh() 
PS SQLSERVER:\SQL\MyServer\MyInstance\Databases\MyDatabase> $db.Owner 

지정 권한은 권한을 할당하는 여러 방법이 조금 까다 물론이다. 할당 할 권한 (데이터베이스, 개체, 기본 제공 역할, 서버 수준, 스키마 등)을 설명하면 도움이됩니다. 데이터베이스 사용자를 생성하고 개체 권한을 할당하는 방법은 다음과 같습니다.

$user = new-object ('Microsoft.SqlServer.Management.Smo.User') 'MyDatabase', 'MyUser' 
$user.Login = 'MyUser' 
$user.DefaultSchema = 'dbo' 
$user.Create() 
PS SQLSERVER:\SQL\MyServer\MyInstance\Databases\MyDatabase\tables> $tbl = get-childitem | where {$_.name -eq 'mytable'} 
$tbl.Grant('SELECT','myUser') 
+0

이것은 매우 유용합니다. 팜 계정에는 콘텐츠 데이터베이스에 대한 DBO 권한이 필요합니다. 나는 아마도 내가 당신 샘플에서해야 할 일을 해결할 수 있습니다. – Charlie

관련 문제