web-dev-qa-db-fra.com

SQL Server donne aux utilisateurs une base de données accessible par db_owner

Nous souhaitons donner à l'utilisateur via un script, une base de données et des identifiants de connexion de test. Habituellement, nous allions entrer dans les connexions et cliquer avec le bouton droit de la souris sur le nom d'utilisateur, puis sur la carte utilisateur et la base de données avec laquelle l'associer. Donnez-lui un accès propriétaire, puis cliquez surOK.

24
user516883

Vous devez faire deux choses, s'exécutant toutes les deux dans le contexte de la base de données cible (c'est-à-dire, exécutez d'abord USE (database)):

  1. Ajoutez cet utilisateur en tant que connexion à la base de données: CREATE USER [LoginName] FOR LOGIN [LoginName]
  2. Ajoutez cet utilisateur au rôle: EXEC sp_addrolemember N'db_owner', N'LoginName'

En règle générale, si vous utilisez SQL Server Management Studio 2005 ou une version ultérieure, vous pouvez accéder à l'interface utilisateur d'une opération, remplir la boîte de dialogue (dans ce cas, affecter l'utilisateur à la base de données et ajouter des rôles), puis cliquer sur " Script "en haut. Au lieu d'exécuter la commande, il écrira un script pour l'action dans une nouvelle fenêtre de requête.

49
Tadmas

Utilisez sp_addrolemember

EXEC sp_addrolemember 'propriétaire_base', 'mon_utilisateur'

13
HardCode

Voici comment utiliser ALTER ROLE avec un identifiant de serveur existant nommé MyLogin.

USE MyDatabase
CREATE USER MyLogin FOR LOGIN MyLogin
ALTER ROLE db_owner ADD MEMBER MyLogin
GO

https://docs.Microsoft.com/en-us/sql/t-sql/statements/alter-role-transact-sql

3
Shaun Luttin

Je voudrais proposer une autre solution qui pourrait aider quelqu'un ...

-- create the user on the master database
USE [master] 
GO
CREATE LOGIN [MyUserName] WITH PASSWORD=N'MyPassword'
CREATE USER [MyUserName] FOR LOGIN [MyUserName]
GO

-- create the user on the target database for the login
USE [MyDatabaseName]
GO
CREATE USER [MyUserName] FOR LOGIN [MyUserName]
GO

-- add the user to the desired role
USE [MyDatabaseName]
GO
ALTER ROLE [db_owner] ADD MEMBER [MyUserName]
GO
1
user1477388