Utilisateurs & rôles

Créer un utilisateur exemple avec Microsoft Management Studio

Les étapes suivantes montrent quels paramètres doivent être définis via le Microsoft Management Studio de Microsoft SQL Server.

L'objectif est de créer un utilisateur dans Microsoft SQL Server permettant l'utilisation de Q-Matrix™.

Il convient de noter qu'avec cette méthode, le réglage fin des droits minimaux et nécessaires est fortement limité.

La section suivante montre ensuite comment les droits minimaux peuvent être définis avec une autre méthode.

Après une connexion réussie à un serveur SQL via Microsoft Management Studio, un nouvel utilisateur peut être créé via l'explorateur d'objets, par le menu contextuel dans la zone <SQL Server>\Sécurité\Connexions.
Cette boîte de dialogue contient tous les éléments pour la création d'un nouvel utilisateur. Sous (1), vous pouvez également choisir entre l'utilisation d'un utilisateur Microsoft SQL Server intégré ou d'un utilisateur Microsoft Active Directory.
Pour les utilisateurs intégrés SQL Server, le paramétrage recommandé est visible sur l'image de gauche.
Pour cela, saisissez sous (1) le nom de connexion ou l'identifiant utilisateur. En (2), saisissez deux fois de manière identique le mot de passe pour ce nouvel utilisateur. En (3), l'accès peut être limité à une base de données dédiée, de sorte que l'utilisateur ne dispose des droits définis que pour cette base de données. Dans le cadre de Q-Matrix™, c'est ici que la base de données Q-Matrix™ créée / à utiliser doit être définie.
Sur la page « Rôles de serveur », les rôles standard décrits pour l'accès au serveur peuvent être définis.
Le rôle public est toujours sélectionné par défaut et doit être conservé au minimum. Si un utilisateur doit être créé pour la création initiale de la base de données Q-Matrix™, le rôle sysadmin doit également être sélectionné ici.
Via l'affectation des utilisateurs, les autorisations plus fines peuvent être définies.
Pour cela, sélectionnez d'abord via (1) la base de données à utiliser.
Cela permet ensuite via (2) de définir les autres droits. Outre le rôle db_datawriter, le rôle db_owner doit également être défini via ce paramétrage/cette création graphique. D'autres paramétrages minimaux ne peuvent pas être utilisés avec cette méthode.
Via (3), le schéma peut également être défini. Q-Matrix™ n'utilise actuellement aucun schéma, il convient donc d'utiliser la valeur par défaut (aucune saisie).
La fenêtre de gauche affiche les différents schémas dans Microsoft SQL Server. Q-Matrix™ n'utilise pas de schéma supplémentaire ; le schéma par défaut de l'utilisateur dbo est utilisé.
Le paramétrage final doit être vérifié sur la page « Statut ». On y définit si le nouvel utilisateur est autorisé à se connecter au serveur SQL et si l'utilisateur est actif.
Si tous ces paramètres sont corrects, la création du nouvel utilisateur peut être lancée via le bouton « OK ».

Une création plus poussée d'un utilisateur est présentée dans la section suivante via Transact-SQL (T-SQL).

C'est la seule méthode permettant de créer un utilisateur avec des droits minimaux pour les différentes tâches et l'utilisation de Q-Matrix™.

Transact SQL : créer un utilisateur

Selon les besoins, des utilisateurs distincts, ou des références à des groupes Microsoft Active Directory, peuvent être définis pour les différentes tâches (utilisation/exploitation, mise à jour et création initiale).

Si ce ne sont pas trois (3) utilisateurs, mais seulement deux (2), voire un seul utilisateur, qui doivent être utilisés, il convient d'utiliser le niveau d'autorisation immédiatement supérieur.

La hiérarchie d'utilisateurs et d'autorisations suivante s'applique :

Utilisateur standard

Le script suivant peut être utilisé pour créer un utilisateur standard via Management Studio en T-SQL :

USE [master]
GO
-- Create user Windows Authentication
-- CREATE LOGIN [YourDomainName] FROM WINDOWS WITH DEFAULT_DATABASE=[YourDB];
-- Create SQL Server Authentication
CREATE LOGIN [LoginName] WITH PASSWORD=N'qm', DEFAULT_DATABASE=[YourDB], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON
GO
USE [YourDB]
GO
CREATE USER [LoginName] FOR LOGIN [LoginName]
GO
------------------------------
ALTER ROLE [db_datareader] ADD MEMBER [LoginName];
ALTER ROLE [db_datawriter] ADD MEMBER [LoginName];
GRANT ALTER ON SCHEMA::[dbo] TO [LoginName];
GRANT EXECUTE ON SCHEMA::[dbo] TO [LoginName];
GRANT SELECT ON SCHEMA::[dbo] TO [LoginName];
GO

La suppression d'un utilisateur s'effectue via le script suivant :

DROP USER [LoginName]
GO
DROP LOGIN [LoginName]
GO

Utilisateur de mise à jour (= db_ddladmin)

Le script suivant peut être utilisé pour créer un utilisateur de mise à jour via Management Studio en T-SQL :

USE [master]
GO
-- Create user Windows Authentication
-- CREATE LOGIN [YourDomainName] FROM WINDOWS WITH DEFAULT_DATABASE=[YourDB];
-- Create SQL Server Authentication
CREATE LOGIN [LoginName] WITH PASSWORD=N'qm', DEFAULT_DATABASE=[YourDB], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON
GO
USE [YourDB]
GO
CREATE USER [LoginName] FOR LOGIN [LoginName]
GO
------------------------------
ALTER ROLE [db_datareader] ADD MEMBER [LoginName];
ALTER ROLE [db_datawriter] ADD MEMBER [LoginName];
ALTER ROLE [db_ddladmin] ADD MEMBER [LoginName];
GRANT ALTER ON SCHEMA::[dbo] TO [LoginName];
GRANT EXECUTE ON SCHEMA::[dbo] TO [LoginName];
GRANT SELECT ON SCHEMA::[dbo] TO [LoginName];
GO

La suppression d'un utilisateur s'effectue via le script suivant :

DROP USER [LoginName]
GO
DROP LOGIN [LoginName]
GO

Utilisateur initial (= sysadmin)

Le script suivant peut être utilisé pour créer un utilisateur initial via Management Studio en T-SQL :

USE [master]
GO
-- Create user Windows Authentication
-- CREATE LOGIN [YourDomainName] FROM WINDOWS WITH DEFAULT_DATABASE=[YourDB];
-- Create SQL Server Authentication
CREATE LOGIN [LoginName] WITH PASSWORD=N'qm', DEFAULT_DATABASE=[YourDB], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON
GO
USE [YourDB]
GO
CREATE USER [LoginName] FOR LOGIN [LoginName]
GO
------------------------------
ALTER SERVER ROLE [sysadmin] ADD MEMBER [LoginName]
GO

La suppression d'un utilisateur s'effectue via le script suivant :

DROP USER [LoginName]
GO
DROP LOGIN [LoginName]
GO