web-dev-qa-db-fra.com

SQL Server 2008: comment octroyer des privilèges à un nom d'utilisateur?

Je dois pouvoir établir une connexion ODBC via l'authentification SQL Server.

Dans SSMS, comment puis-je accorder à un utilisateur la permission d’obtenir ALL RIGHTS sur une base de données spécifique?

est-il possible de faire cela graphiquement avec SSMS?

Si vous voulez donner à votre utilisateur toutes les autorisations de lecture, vous pouvez utiliser:

EXEC sp_addrolemember N'db_datareader', N'your-user-name'

Cela ajoute le rôle par défaut db_datareader (autorisation de lecture sur toutes les tables) à cet utilisateur.

Il existe également un rôle db_datawriter - qui donne à votre utilisateur toutes les autorisations WRITE (INSERT, UPDATE, DELETE) sur toutes les tables:

EXEC sp_addrolemember N'db_datawriter', N'your-user-name'

Si vous devez être plus précis, vous pouvez utiliser la commande GRANT:

GRANT SELECT, INSERT, UPDATE ON dbo.YourTable TO YourUserName
GRANT SELECT, INSERT ON dbo.YourTable2 TO YourUserName
GRANT SELECT, DELETE ON dbo.YourTable3 TO YourUserName

et ainsi de suite - vous pouvez accorder de manière granulaire les autorisations SELECT, INSERT, UPDATE, DELETE sur des tables spécifiques.

Tout cela est très bien décrit dans MSDN Books Online pour SQL Server .

Et oui, vous pouvez également le faire graphiquement - dans SSMS, accédez à votre base de données, puis Security > Users, cliquez avec le bouton droit de la souris sur l'utilisateur auquel vous souhaitez attribuer des autorisations, puis Properties et au bas de l'écran "Appartenances à un rôle de base de données" où vous pouvez ajouter l'utilisateur à des rôles de base de données.

alt text

134
marc_s

Si vous voulez vraiment qu'ils aient TOUS les droits:

use YourDatabase
go
exec sp_addrolemember 'db_owner', 'UserName'
go
57
Joe Stefanelli

Comme la suivante. Cela rendra le propriétaire de la base de données utilisateur.

EXEC sp_addrolemember N'db_owner', N'USerNAme'
18
SQLMenace