202 votes

Différence entre un utilisateur et un login dans SQL Server

J'ai récemment rencontré de nombreuses zones de SQL Server avec lesquelles je ne m'embarrasse normalement pas. L'une d'entre elles qui m'a laissé perplexe est la zone des logins et des utilisateurs. Il semble que ce soit un sujet assez simple...

Il semble que chaque connexion ne puisse avoir qu'un seul utilisateur et que chaque utilisateur ne puisse avoir qu'une seule connexion.

Un login peut être associé à plusieurs tables, ce qui permet d'associer cet utilisateur à plusieurs tables.

Ma question est donc la suivante : pourquoi avoir un login et un utilisateur ? Ils semblent être pratiquement identiques. Quelles sont les différences, ou qu'est-ce qui me manque ?

224voto

Scott Ivey Points 19577

Un "Login" permet au principal d'entrer dans le SERVEUR.

Un "Utilisateur" accorde un accès à une seule BASE DE DONNEES.

Un "Login" peut être associé à plusieurs utilisateurs (un par base de données).

Chacun des objets ci-dessus peut se voir accorder des autorisations à son propre niveau. Voir les articles suivants pour une explication de chaque

9 votes

Ah pas étonnant que je n'ai pas pu trouver de différence. Je travaillais simplement avec une seule base de données. Merci.

3 votes

Cette réponse est fondamentalement correcte, mais d'après ce que je comprends, un utilisateur particulier peut en fait se voir accorder l'accès à plus d'une base de données disponible sur ce serveur particulier. Ainsi, la connexion à l'utilisateur est une correspondance 1 à 1, mais l'utilisateur à la base de données est une correspondance 1 à plusieurs.

1 votes

@coreymathews : Moins de temps dans " Boy Meets World " et plus de temps sur les livres ! ;).

36voto

Tom Resing Points 1225

L'une des raisons d'avoir les deux est que l'authentification peut être effectuée par le serveur de base de données, mais l'autorisation peut être étendue à la base de données. Ainsi, si vous déplacez votre base de données vers un autre serveur, vous pouvez toujours réorganiser la relation utilisateur-connexion sur le serveur de base de données, mais votre base de données ne doit pas changer.

0 votes

Pouvez-vous nous en dire plus ? Quel est l'avantage d'effectuer la modification sur le serveur de la base de données plutôt que sur la base de données ?

1 votes

Disons que vous voulez sauvegarder et restaurer une base de données. La restauration est souvent effectuée sur un nouveau serveur. Vous ne souhaitez peut-être pas avoir à modifier une base de données lors d'une restauration.

0 votes

Pourquoi ne pas simplement effectuer la modification après la restauration de la base de données ?

28voto

David Leitner Points 163

Je pense qu'il y a un très bon Article de blog MSDN sur ce sujet par Laurentiu Cristofor :

La première chose importante à comprendre sur la sécurité de SQL Server est que est qu'il existe deux domaines de sécurité : le serveur et la base de données. et la base de données. Le domaine du serveur englobe plusieurs domaines bases de données. Tout le travail est effectué dans le contexte d'une base de données, mais pour pouvoir mais pour faire le travail, il faut d'abord avoir accès au serveur, puis à la base de données. avoir accès à la base de données.

L'accès au serveur est accordé via des logins. Il existe deux grandes catégories principales d'identifiants : les connexions authentifiées par le serveur SQL et les connexions et les connexions authentifiées Windows. Je ferai généralement référence à ces deux catégories en utilisant les noms plus courts noms plus courts de connexions SQL et de connexions Windows. Les connexions authentifiées Windows peuvent être des identifiants associés à des utilisateurs Windows ou des identifiants associés à des groupes groupes Windows. Par conséquent, pour pouvoir se connecter au serveur, il faut avoir l'accès via l'un de ces types d'identifiants. domaine du serveur.

Mais les logins ne suffisent pas, car le travail est généralement effectué dans une base de données et les bases de données sont des domaines distincts. L'accès aux bases de données est accordé via utilisateurs.

Les utilisateurs sont associés aux logins et l'association est exprimée par le SID. des identifiants et des utilisateurs. Un login correspond à un utilisateur dans une base de données si leurs valeurs SID sont identiques. En fonction du type de login, on peut donc avoir une catégorisation d'utilisateurs qui imite la catégorisation ci-dessus pour les ci-dessus pour les connexions ; ainsi, nous avons les utilisateurs SQL et les utilisateurs Windows et cette dernière catégorie est constituée d'utilisateurs associés à des connexions d'utilisateurs Windows et des utilisateurs associés à des connexions de groupe Windows.

Prenons un peu de recul pour avoir une vue d'ensemble rapide : un login donne accès à au serveur et pour obtenir l'accès à une base de données, un utilisateur cartographié au login doit exister dans la base de données.

c'est le lien à l'article complet.

24voto

Vikrant Kedari Points 21

En bref,

Logins aura l'accès au serveur.

y

Utilisateurs aura l'accès à la base de données.

7voto

ilmatte Points 519

Je pense que c'est une question très utile avec une bonne réponse. J'ajoute juste mes deux cents du MSDN Créer une connexion page :

Un login est un principal de sécurité, ou une entité qui peut être authentifiée par un système sécurisé. Les utilisateurs ont besoin d'un login pour se connecter à SQL Server. Vous pouvez créer un login basé sur un principal Windows (tel qu'un utilisateur de domaine ou un groupe de domaine Windows) ou vous pouvez créer un login qui n'est pas basé sur un principal Windows (tel qu'un login SQL Server).

Note :
Pour utiliser l'authentification SQL Server, le moteur de base de données doit utiliser l'authentification en mode mixte. Pour plus d'informations, voir Choisir un mode d'authentification.

En tant que principe de sécurité, des permissions peuvent être accordées aux logins. La portée d'un login est l'ensemble du moteur de base de données. Pour se connecter à une base de données spécifique sur l'instance de SQL Server, un login doit être associé à un utilisateur de base de données. Les autorisations au sein de la base de données sont accordées et refusées à l'utilisateur de la base de données, et non au login. Les autorisations qui ont la portée de l'instance entière de SQL Server (par exemple, l'autorisation CREATE ENDPOINT) peuvent être accordées à un login.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X