Différence entre un utilisateur et une connexion dans SQL Server

J'ai récemment couru dans de nombreux domaines différents de SQL Server que je ne plaisante normalement pas avec. L'un d'eux qui m'a confondu est la zone des Connexions et des Utilisateurs. On dirait que cela devrait être un sujet assez simple...

, Il apparaît que chaque connexion ne peut avoir 1 utilisateur et chaque utilisateur peut seulement avoir 1 connexion.

Une connexion peut être associée à plusieurs tables associant ainsi cet utilisateur à plusieurs tables.

Donc ma question est pourquoi même avoir un login et un utilisateur? ils semblent être à peu près dans le même. Quelles sont les différences, ou qu'est-ce que je semble être absent?

152
demandé sur Martin Smith 2009-07-16 01:55:25

5 réponses

Un "Login" accorde l'entrée principale dans le serveur.

Un "utilisateur" accorde une entrée de connexion dans une base de données unique.

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

Chacun de ces objets peuvent avoir des autorisations accordées à son propre niveau. Voir les articles suivants pour une explication de chaque

169
répondu Scott Ivey 2014-02-01 15:27:14

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 que l'autorisation peut être étendue à la base de données. De cette façon, si vous déplacez votre base de données vers un autre serveur, vous pouvez toujours remapper la relation Utilisateur-connexion sur le serveur de base de données, mais votre base de données n'a pas à changer.

27
répondu Tom Resing 2009-07-15 21:59:40

En Bref,

Les Connexions auront accès du serveur.

Et

Les utilisateurs {[4] } auront accès à la base de données.

20
répondu Vikrant Kedari 2014-07-08 10:07:12

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

La première chose importante qui doit être comprise à propos de SQL Server la sécurité est qu'il y a deux domaines de sécurité impliqués - le serveur et la base de données. Le domaine du serveur englobe plusieurs bases de données Royaume. Tout le travail est fait dans le contexte d'une base de données, mais pour obtenir pour faire le travail, il faut d'abord avoir accès au serveur, puis pour avoir accès à la la base de données.

L'accès au serveur est accordé via les connexions. Il existe deux principaux catégories de connexions: connexions authentifiées par SQL Server et Windows connexions authentifiées. Je vais généralement me référer à ceux ci en utilisant le plus court noms des connexions SQL et des connexions Windows. Connexions authentifiées par Windows les connexions peuvent être mappées à des utilisateurs Windows ou à des connexions mappées Les groupes Windows. Donc, pour pouvoir se connecter au serveur, il faut avoir accès via l'un de ces types ou connexions-les connexions fournissent l'accès à la serveur de domaine.

Mais les connexions 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ée par utilisateur.

Les utilisateurs sont mappés aux connexions et le mappage est exprimé par le SID propriété de connexions et des utilisateurs. Une connexion correspond à un utilisateur dans une base de données si leurs valeurs SID sont identiques. Selon le type de connexion, nous pouvons par conséquent avoir une catégorisation des utilisateurs qui imite ce qui précède catégorisation pour les connexions; donc, nous avons des utilisateurs SQL et des utilisateurs Windows et cette dernière catégorie comprend les utilisateurs mappés aux connexions utilisateur Windows et des utilisateurs mappés aux connexions de groupe Windows.

Prenons un peu de recul pour un aperçu rapide: une connexion donne accès au serveur et pour accéder à une base de données, un utilisateur a mappé à la connexion doit exister dans la base de données.

C'est le lien pour le post complet.

16
répondu David Leitner 2015-09-16 07:56:57

Je pense que c'est un très utile avec une bonne réponse. Juste pour ajouter mes deux cents du MSDN Créer une page de connexion :

Une connexion 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 une connexion basée sur un principal Windows (tel qu'un utilisateur de domaine ou un groupe de domaines Windows) ou vous pouvez créer une connexion qui n'est pas basée sur un principal Windows (telle qu'une connexion SQL Server).

Remarque:
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 principal de sécurité, des autorisations peuvent être accordées aux connexions. La portée d'une connexion 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, une connexion doit être mappée à un utilisateur de base de données. Les autorisations à l'intérieur de la base de données sont accordées et refusées à l'utilisateur connexion. 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 à une connexion.

5
répondu ilmatte 2015-09-07 19:59:30