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.
Si vous voulez vraiment qu'ils aient TOUS les droits:
use YourDatabase
go
exec sp_addrolemember 'db_owner', 'UserName'
go
Comme la suivante. Cela rendra le propriétaire de la base de données utilisateur.
EXEC sp_addrolemember N'db_owner', N'USerNAme'