Каков точный SQL для назначения пользователю ролей db_datareader и db_datawriter в SQL Server?
Имя пользователя - MYUSER, база данных - MYDB.





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