Что такое T-SQL Для предоставления доступа на чтение и запись к таблицам в базе данных в SQL Server? - PullRequest
64 голосов
/ 19 января 2009

Каков точный SQL для назначения ролей db_datareader и db_datawriter пользователю в SQL Server?

Имя пользователя MYUSER и база данных MYDB.

Ответы [ 3 ]

95 голосов
/ 19 января 2009

В SQL Server 2012, 2014:

USE mydb
GO

ALTER ROLE db_datareader ADD MEMBER MYUSER
GO
ALTER ROLE db_datawriter ADD MEMBER MYUSER
GO

В SQL Server 2008:

use mydb
go

exec sp_addrolemember db_datareader, MYUSER 
go
exec sp_addrolemember db_datawriter, MYUSER 
go

Чтобы также назначить возможность выполнения всех хранимых процедур для базы данных:

GRANT EXECUTE TO MYUSER;

Чтобы назначить возможность выполнять определенные хранимые процедуры:

GRANT EXECUTE ON dbo.sp_mystoredprocedure TO MYUSER;
11 голосов
/ 18 декабря 2013

Из SQLServer 2012 более элегантно изменить роль :

use mydb
go

ALTER ROLE db_datareader
  ADD MEMBER MYUSER 
go
ALTER ROLE db_datawriter
  ADD MEMBER MYUSER 
go
0 голосов
/ 21 апреля 2017

Будет лучше создать новую роль, затем предоставить разрешения на выполнение, выбрать ... и т. Д. Этой роли и, наконец, назначить пользователей этой роли.

Создать роль

CREATE ROLE [db_SomeExecutor] 
GO

Предоставить разрешение на эту роль

GRANT EXECUTE TO db_SomeExecutor
GRANT INSERT  TO db_SomeExecutor

Добавить базу данных пользователей> Безопасность>> Роли> Роли базы данных> Свойства> Добавить (внизу справа), вы можете искать пользователей AD и добавить затем

ИЛИ

   EXEC sp_addrolemember 'db_SomeExecutor', 'domainName\UserName'

Пожалуйста, отошлите сообщение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...