2010-03-17 5 views
1

Dans mon serveur SQL Server 2005, je crée des bases de données et des connexions à l'aide de Management Studio. Mon application nécessite que je donne à un nouvel utilisateur des autorisations de lecture et d'écriture sur une autre base de données. Pour cela, je clique avec le bouton droit de la souris sur la connexion nouvellement créée, sélectionne les propriétés et passe à User Mapping. J'ai mis un chèque à côté de la base de données pour mapper cette connexion à la base de données et sélectionnez db_datareader et db_datawriter comme rôles à mapper.SQL Server Mappage d'un utilisateur à une connexion et ajout de rôles par programme

Est-ce que cela peut être fait par programme? J'ai lu à propos de l'utilisation d'Alter User et de sp_change_users_login mais j'ai des problèmes pour les faire fonctionner, puisque sp_change_users_login a été abandonné, donc je préférerais utiliser Alter User.

S'il vous plaît noter ma compréhension des utilisateurs/connexions/rôles de base de données SQL Server est base

Répondre

1

Logins sont pour l'instance du serveur. Les utilisateurs sont au niveau de la base de données. Les rôles se trouvent généralement au niveau de la base de données, mais certains rôles fixes sont définis, tels que sysadmin au niveau de l'instance du serveur.

Allez à here pour que la grammaire crée un utilisateur sur une base de données.
Go here pour la syntaxe permettant d'ajouter cet utilisateur à un rôle de base de données.

Vous allez probablement exécuter quelque chose comme ce qui suit pour accomplir tout cela.

Create Login temp1 with Password = '[email protected]#$FAF', Default_Database = test 
GO 
use test; 
Create User user_blah1 from Login temp1 
GO 
use test; 
Exec sp_addrolemember @rolename = 'db_datareader', 
    @membername = 'user_blah1' 
Questions connexes