web-dev-qa-db-fra.com

Qu'est-ce que le T-SQL Pour accorder un accès en lecture et en écriture aux tables d'une base de données dans SQL Server?

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.

64
ConsultUtah

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;
95
cmsjr

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
11
dani herrera

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

0
singhswat