SQL Azure: create a login that has only access to one database | SQL Azure: créer un login qui n’a accès qu’à une base de données
You have a SQL Azure Server. You can access the databases thru the administrator login you specified while creating the SQL Azure Server. | On dispose d’un serveur SQL Azure. On peut y accéder avec le compte administrateur qui a été spécifié lors de la création du serveur SQL Azure. |
In the SQL Azure server, you have the following databases: - master - DB001 - DB002 | Dans le serveur SQL Azure, on dispose des bases suivantes: - master - DB001 - DB002 |
You would like to create a SQL Azure login that has fully access to DB001 but no access to the other databases. | On souhaite créer un compte d’accès à SQL Azure qui est administrateur de la base DB001 mais n’a pas accès aux autres bases. |
Here is how to do that. | Voici comment procéder. |
In the Windows Azure management portal, select the master database and click manage. | Dans le portail d’administration de Windows Azure, sélectionner la base master et cliquer sur Manage. |
connect with the SQL Azure Administrator | se connecter avec l’administrateur SQL Azure |
Create the new login by entering the following statement in a new Query:
create login DB001Admin with password = 'IYtfidgu18'; go (replace IYtfidgu18 by a password you choose) then click Run |
créer le nouveau compte en entrant la requête suivante dans une nouvelle “Query”:
create login DB001Admin with password = 'IYtfidgu18'; go (remplacer IYtfidgu18 par nun autre mot de passe qu’on choisira) puis cliquer sur Run |
Close the browser tab and go back to the Windows Azure management portal. Select DB001 database, click manage | Fermer l’onglet du navigateur et aller de nouveau dans le portail Windows Azure. Sélectionner la base DB001 et cliquer sur manage. |
connect with the SQL Azure Server admin login (the same you used to connect to master) and create a new query | se connecter avec le compte d’administration du serveur SQL Azure (le même qu’on a utilisé pour se connecter à la base master) pus créer une nouvelle “query” |
type the following statement:
CREATE USER DB001Admin FOR LOGIN DB001Admin WITH DEFAULT_SCHEMA = dbo GO -- Add user to the database owner role EXEC sp_addrolemember N'db_owner', N'DB001Admin' GO and Run the query |
Taper la requête suivante:
CREATE USER DB001Admin FOR LOGIN DB001Admin WITH DEFAULT_SCHEMA = dbo GO -- Add user to the database owner role EXEC sp_addrolemember N'db_owner', N'DB001Admin' GO et cliquer sur Run |
DB001Admin with a password of IYtfidgu18 (or whatever you chose) is now a valid login for DB001 database, and only that database. | DB001Admin avec le mot de passe IYtfidgu18 (ou ce qu’on a choisi à la place) est maintenant un compte valable pour la base DB001, et seulement pour cette base |
PS: with contained databases, there might also be ways to have database users fully defined in the database, but this is not the case yet in SQL Azure. | PS: Avec les bases de données contenues, il pourrait y avoir à l’avenir un compte directement hébergé au niveau de la base elle-même, mais ce n’est pas le cas actuellement dans SQL Azure. |