Что такое T-SQL Предоставить доступ для чтения и записи к таблицам в базе данных на SQL Server?
Каков точный SQL для назначения ролей db_datareader
и db_datawriter
пользователю в SQL Server?
Имя пользователя MYUSER
, а база данных MYDB
.
Ответы
Ответ 1
В 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;
Ответ 2
Из SQLServer 2012 более элегантная изменить роль:
use mydb
go
ALTER ROLE db_datareader
ADD MEMBER MYUSER
go
ALTER ROLE db_datawriter
ADD MEMBER MYUSER
go
Ответ 3
Лучше создать новую роль, затем выполнить выполнение, выбрать... etc разрешения для этой роли и, наконец, назначить пользователей этой роли.
Создать роль
CREATE ROLE [db_SomeExecutor]
GO
Предоставление разрешения на эту роль
GRANT EXECUTE TO db_SomeExecutor
GRANT INSERT TO db_SomeExecutor
Добавить базу данных пользователей > безопасность → роли > databaseroles > Свойствa > Добавить (внизу справа) вы можете искать пользователей AD и добавлять
ИЛИ
EXEC sp_addrolemember 'db_SomeExecutor', 'domainName\UserName'
Пожалуйста, обратитесь к сообщению