SQL Server предоставляет логинам (пользователям) доступ к базе данных db_owner - PullRequest
25 голосов
/ 29 августа 2011

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

Ответы [ 4 ]

51 голосов
/ 29 августа 2011

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

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

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

13 голосов
/ 29 августа 2011

Использование sp_addrolemember

EXEC sp_addrolemember 'db_owner', 'MyUser'

5 голосов
/ 22 января 2018

Вот как использовать ALTER ROLE с существующим логином сервера с именем MyLogin.

USE MyDatabase
CREATE USER MyLogin FOR LOGIN MyLogin
ALTER ROLE db_owner ADD MEMBER MyLogin
GO

https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-role-transact-sql

2 голосов
/ 24 сентября 2018

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

-- 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...