Сценарий пользователя для конкретной базы данных? - PullRequest
1 голос
/ 29 августа 2011

Я работаю над своим сценарием развертывания SQL.

У меня есть логин с именем «User123», я добавил в свою текущую базу данных, но у меня есть хранимая процедура, которая записывает информацию в MyDB, мне нужен User123разрешения на MyDB, поэтому я создал пользователя на MyDB с разрешениями, однако, как мне написать сценарий, а не добавлять пользователя вручную ...

Пока у меня есть это, но не могу понять, как добавить его вдругая база данных, «MyDB», может быть жестко запрограммирована, так как на каждом сервере будет только 1, однако я не могу жестко закодировать текущую базу данных, на которой выполняется скрипт на

IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'User123')
BEGIN
   CREATE USER [User123] FOR LOGIN [User123] WITH DEFAULT_SCHEMA=[dbo]
END
GO

Это выполняется только на текущей базе данных, какзаставить его работать с другими базами данных.

Пример ..

MyDB
Безопасность
Пользователь123

DB1
Безопасность
Пользователь123

Мне нужен сценарий, который добавит пользователя в текущую базу данных и в MyDB, без необходимости вручную переключать базы данных

1 Ответ

2 голосов
/ 21 декабря 2011

А как же:

USE MyDB
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'User123')
BEGIN
   CREATE USER [User123] FOR LOGIN [User123] WITH DEFAULT_SCHEMA=[dbo]
END
GO

USE DB1
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'User123')
BEGIN
   CREATE USER [User123] FOR LOGIN [User123] WITH DEFAULT_SCHEMA=[dbo]
END
GO
...