Quel est le code SQL exact pour attribuer les rôles db_datareader
et db_datawriter
à un utilisateur dans SQL Server?
Le nom d'utilisateur est MYUSER
et la base de données est MYDB
.
Dans SQL Server 2012, 2014:
USE mydb
GO
ALTER ROLE db_datareader ADD MEMBER MYUSER
GO
ALTER ROLE db_datawriter ADD MEMBER MYUSER
GO
Dans SQL Server 2008:
use mydb
go
exec sp_addrolemember db_datareader, MYUSER
go
exec sp_addrolemember db_datawriter, MYUSER
go
Pour attribuer également la possibilité d'exécuter toutes les procédures stockées pour une base de données:
GRANT EXECUTE TO MYUSER;
Pour attribuer la possibilité d'exécuter des procédures stockées spécifiques:
GRANT EXECUTE ON dbo.sp_mystoredprocedure TO MYUSER;
De SQLServer 2012 plus élégant modifier le rôle :
use mydb
go
ALTER ROLE db_datareader
ADD MEMBER MYUSER
go
ALTER ROLE db_datawriter
ADD MEMBER MYUSER
go
Il sera préférable de créer un nouveau rôle, puis d’accorder des autorisations d’exécution, de sélection, etc., à ce rôle et enfin d’affecter des utilisateurs à ce rôle.
Créer un rôle
CREATE ROLE [db_SomeExecutor]
GO
Accorder la permission à ce rôle
GRANT EXECUTE TO db_SomeExecutor
GRANT INSERT TO db_SomeExecutor
ajouter des utilisateurs base de données> sécurité>> rôles> databaseroles> Propriétés> Ajouter (en bas à droite) vous pouvez rechercher des utilisateurs AD et ajouter ensuite
OU
EXEC sp_addrolemember 'db_SomeExecutor', 'domainName\UserName'
S'il vous plaît se référer ce post