2011-01-11 13 views
2

私は新しいSQL Serverデータベースを作成するPowerShellスクリプトを持っています。これはSharePoint 2010実装のコンテンツデータベースになります。SQL Server PowerShell Providerおよび/またはSMOを使用して新しいログインを作成するにはどうすればよいですか?

作成したDBOを自分のSharePointファームアカウントに設定する必要があり、他のサービスアカウントにアクセス許可を割り当てる必要があります。

誰もSMOとPowerShell Provider for SQL Serverを使用してこれを行う方法について考えていますか?デシベルの所有者は、単に十分で設定

答えて

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

関連する問題