Как создать новый вход в систему с помощью поставщика SQL Server PowerShell и / или SMO? - PullRequest
2 голосов
/ 11 января 2011

У меня есть скрипт PowerShell, который создает новую базу данных SQL Server.Это будет база данных контента для реализации SharePoint 2010.

После создания мне нужно установить DBO в качестве моей учетной записи фермы SharePoint, и мне нужно назначить разрешения для некоторых других учетных записей служб.

Кто-нибудь имеет представление о том, как сделать это с помощью SMO и поставщика PowerShell для SQL Server?

1 Ответ

4 голосов
/ 11 января 2011

Установить владельца БД достаточно просто:

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')
...