3
votes

Définir la base de données par défaut sur l'utilisateur SQL Server (Azure)

J'essaie de créer un utilisateur de base de données à partir de C # dans Azure SQL Server. Mais je dois définir sa base de données par défaut ( DEFAULT_DATABASE ) mais le script ne fonctionne pas sur Azure.

Est-ce que quelqu'un sait comment puis-je le faire?

CREATE USER newlogin FOR LOGIN newlogin;
ALTER LOGIN newlogin WITH DEFAULT_DATABASE = myDatabase;


0 commentaires

4 Réponses :


2
votes

Cela peut être fait dans Azure mais, comme @Larnu y fait allusion, ce n'est pas vraiment simple. Les conseils donnés dans leur réponse fonctionneront pour une seule connexion, mais ce n'est probablement pas quelque chose de pratique ou souhaitable dans n'importe quel scénario de production. Je suggérerais de faire ce qui suit:

  1. créer un groupe dans Active Directory qui encapsule les utilisateurs auxquels vous souhaitez appliquer ce comportement; attribuer les membres appropriés à ce groupe
  2. ajoutez le groupe en tant que nouvelle connexion au serveur Azure Sql cible; modifier la connexion pour que la base de données appropriée soit définie par défaut
  3. ajouter le groupe en tant que nouvel utilisateur à la base de données par défaut qui a été attribuée précédemment


Le code pour cela est légèrement différent dans Azure Sql Server et sur site:

-- run in [master]
create login [YourGroupName] from external provider;
alter login [YourGroupName] with default_database = [YourDefaultDatabase];

-- run in [YourDefaultDatabase]
create user [YourGroupName] from login [YourGroupName];


Modifier:[

Les utilisateurs d'Azure Sql Server sont généralement contenus dans une seule base de données et n'existent même pas au "niveau du serveur"; plus d'informations peuvent être trouvées ici . Si vous souhaitez simplement créer un utilisateur dans une base de données Azure Sql Server, tout ce que vous avez à faire est d'écrire une instruction sous la forme de create user [YourUserName] with password = 'YourSecret'; . Notez que cela suppose que vous êtes déjà connecté à la base de données dans laquelle vous avez l'intention de créer l'utilisateur. Si vous êtes dans un contexte tel que [master] , et aucune possibilité de modifier la chaîne de connexion, vous devrez alors utiliser ChangeDatabase d'abord.


0 commentaires

0
votes

La base de données par défaut est toujours la base de données [master] . Utilisez plutôt le paramètre de base de données de chaîne de connexion / catalogue initial comme base de données par défaut. Pour ajouter un utilisateur spécifique, connectez-vous au maître du serveur de base de données en utilisant le compte du propriétaire.

Ensuite, dans [master] db, vous pouvez créer un nouvel utilisateur de connexion, par exemple:

USE [myseconddb]
GO
CREATE USER dev_team2 WITH PASSWORD = 'P@ssW0rd'
GO
EXEC sp_addrolemember N'db_owner', N'dev_team2'
GO
GRANT EXECUTE TO dev_team2
GRANT INSERT TO dev_team2
GRANT DELETE TO dev_team2
GRANT UPDATE TO dev_team2
GRANT SELECT TO dev_team2
GO

Ensuite, passez à la base de données souhaitée pour la connexion à dev_team . Créez l'utilisateur et accordez l'accès à l'utilisateur dans cette base de données, par exemple:

USE [myseconddb]
GO
CREATE USER dev_team FOR LOGIN dev_team
GO
GRANT EXECUTE TO dev_team
GRANT INSERT TO dev_team
GRANT DELETE TO dev_team
GRANT UPDATE TO dev_team
GRANT SELECT TO dev_team
GO

Ou passez simplement à la base de données souhaitée,

CREATE LOGIN dev_team WITH PASSWORD = 'P@ssW0rd'
GO

L'utilisateur dev_team et dev_team2 ne peut alors pas accéder à d'autres bases de données sauf [myseconddb] . Vous pouvez ensuite utiliser dans la chaîne de connexion, par exemple userid dev_team2 et mot de passe P @ ssW0rd et catalogue initial nom myseconddb (par défaut).

J'espère que cela vous aidera.


2 commentaires

merci, mais ne fonctionne pas encore, car le problème est si vous souhaitez vous connecter au serveur SQL avec le studio de gestion.


Eh bien, ce n'est pas votre question principale. SSMS construit la chaîne de connexion lorsque nous saisissons les informations de connexion. Est juste une chaîne de connexion. Et vous pouvez spécifier le catalogue initial avec le nom de la base de données.



1
votes

J'ai trouvé quelque chose qui peut être utile. si je veux me connecter au serveur SQL avec Management Studio, je dois utiliser les "propriétés de connexion" et définir la base de données par défaut.

 entrez la description de l'image ici


0 commentaires

-1
votes

sélectionnez la base de données master , si elle n'est pas déjà sélectionnée et créez la connexion

EXEC sp_addrolemember N'db_owner', N'myAccountName'

cette étape consiste à accorder un connexion accès à la base de données principale et pouvoir se connecter à SSMS sans changer la base de données par défaut dans la page de connexion

CREATE USER [myAccountName] FOR LOGIN [myAccountName] WITH DEFAULT_SCHEMA = [dbo]

basculez sur votre base de données utilisateur et créez l'utilisateur pour la connexion

CREATE USER [myAccountName] FOR LOGIN [myAccountName] WITH DEFAULT_SCHEMA = [dbo]

accordez les autorisations nécessaires à votre utilisateur

CREATE LOGIN [myAccountName] WITH PASSWORD = 'myPassword' 
GO


0 commentaires