SQL Server дает пользователям (пользователям) доступ к базе данных db_owner

У нас есть тестовая база данных и несколько тестовых логинов, которые мы хотели бы предоставить db_owner для доступа через script. Обычно нам нужно войти в логины и щелкнуть правой кнопкой мыши по имени пользователя и перейти к сопоставлению пользователей и выбрать базу данных, чтобы связать ее и предоставить владельцу доступ, и нажать OK.

Ответ 1

Вам нужно сделать две вещи, выполняемые в контексте целевой базы данных (т.е. сначала выполнить USE (database)):

  • Добавьте этого пользователя в качестве входа в базу данных: CREATE USER [LoginName] FOR LOGIN [LoginName]
  • Добавьте этого пользователя в роль: EXEC sp_addrolemember N'db_owner', N'LoginName'

В общем случае, если у вас есть SQL Server Management Studio 2005 или выше, вы можете войти в пользовательский интерфейс для выполнения операции, заполнить диалоговое окно (в этом случае назначить пользователя базе данных и добавить роли), а затем нажмите кнопку "Script" вверху. Вместо выполнения команды он напишет script для действия в новое окно запроса.

Ответ 2

Использовать sp_addrolemember

EXEC sp_addrolemember 'db_owner', 'MyUser'

Ответ 4

Я хотел бы предложить другое решение, которое может помочь кому-то...

-- create the user on the master database
USE [master] 
GO
CREATE LOGIN [MyUserName] WITH PASSWORD=N'MyPassword'
CREATE USER [MyUserName] FOR LOGIN [MyUserName]
GO

-- create the user on the target database for the login
USE [MyDatabaseName]
GO
CREATE USER [MyUserName] FOR LOGIN [MyUserName]
GO

-- add the user to the desired role
USE [MyDatabaseName]
GO
ALTER ROLE [db_owner] ADD MEMBER [MyUserName]
GO