Différence entre LOGIN et USER, entre connexion et utilisateur

Quelle est la différence entre une connexion, ou LOGIN, et un utilisateur de base de données ?

Une connexion, ou login, permet d’accéder à une instance de SQL Server, mais c’est tout.
Une instance de SQL Server pouvant héberger plusieurs bases de données utilisateur, nous ne souhaitons peut-être pas que tous les utilisateurs aient accès à toutes les bases de données d’une instance, et de la même façon.
On peut aussi créer une connexion à un utilisateur pour qu’il puisse seulement effectuer des sauvegardes de base de données

A toute connexion|login, peut correspondre un utilisateur de base de données.
L’utilisateur de base de données est alors « mappé » sur une connexion, qui le donne le droit de naviguer dans 0 à autant de bases de données que l’instance en héberge.
Un administrateur ou les personnes à qui l’administrateur en a délégué le droit peuvent accorder des droits d’accès et des privilèges.

Un droit d’accès permet à un utilisateur de naviguer dans une base de données suivant des privilèges que l’administrateur lui a octroyés.
Un privilège permet de limiter l’accès aux données, par exemple en refusant le droit de SELECT sur la colonne salaire de la table des employés aux utilisateurs employés.

On peut encore gérer plus globalement au niveau de la base de données ou de l’instance les accès aux données en créant des rôles : on affecte ainsi au rôle des droits d’accès et des privilèges, et lors de l’arrivée d’un nouvel utilisateur, il nous suffit de l’ajouter au rôle de base de données.

Pour créer une connexion :

CREATE LOGIN monLogin WITH PASSWORD = 'monMotDePasse'

Pour permettre la navigation dans la base de données :

1
2
3
USE maBD
GO
CREATE USER monUtilisateur FOR LOGIN monLogin

On peut créer de plusieurs façon un rôle :

=> Soit par « recopie » des drois d’un utilisateur :

1
2
3
USE maBD;
CREATE ROLE monRole AUTHORIZATION unUtilsateur;
GO

=> Soit par recopie d’un rôle de base de données existant :

1
2
3
USE maBD;
CREATE ROLE monRole AUTHORIZATION db_securityadmin;
GO

Pour gérer les privilèges, on peut voir la documentation des instructions GRANT, REVOKE et DENY

On peut également réaliser tout cela à l’aide de SQL Server Management Studio :

– Pour la création de la connexion, ouvrez la node « Sécurité » de votre instance, puis faites un clic-droit sur la node « Connexions », et choisissez « Nouvelle connexion »

– Pour la création de l’utilisateur, après avoir ouvert la node possédant le nom de la base de données en question, ouvrez la node « Sécurité », puis cliquez-droit sur la node « Utilisateurs » en choisissant « Nouvel utilisateur »

Un peu de lecture par ici et ici, par SQLPro ;)

ElSuket

Laisser un commentaire