it-swarm.com.de

Unterschied zwischen einem Benutzer und einer Anmeldung in SQL Server

In letzter Zeit bin ich auf viele verschiedene Bereiche von SQL Server gestoßen, mit denen ich normalerweise nichts zu tun habe. Einer von ihnen, der mich verwirrt hat, ist der Bereich der Anmeldungen und Benutzer. Scheint, als sollte es ein ziemlich einfaches Thema sein ...

Es scheint, dass jeder Login nur 1 Benutzer und jeder Benutzer nur 1 Login haben kann.

Ein Login kann mehreren Tabellen zugeordnet werden, wodurch dieser Benutzer vielen Tabellen zugeordnet wird.

Meine Frage ist also, warum überhaupt ein Login und ein Benutzer? sie scheinen so ziemlich ein und dasselbe zu sein. Was sind die Unterschiede, oder was scheint mir zu fehlen?

165
corymathews

Ein "Login" gewährt den Haupteintrag in den SERVER.

Ein "Benutzer" gewährt einen Login-Eintrag in eine einzelne DATABASE.

Ein "Login" kann mit vielen Benutzern verknüpft werden (einer pro Datenbank).

Jedem der oben genannten Objekte können Berechtigungen auf einer eigenen Ebene erteilt werden. In den folgenden Artikeln finden Sie Erklärungen zu den einzelnen Themen

190
Scott Ivey

Ein Grund für beides ist, dass die Authentifizierung vom Datenbankserver durchgeführt werden kann, die Autorisierung jedoch auf die Datenbank beschränkt werden kann. Auf diese Weise können Sie die Benutzeranmeldungsbeziehung auf dem Datenbankserver jederzeit neu zuordnen, wenn Sie Ihre Datenbank auf einen anderen Server verschieben. Ihre Datenbank muss sich jedoch nicht ändern.

31
Tom Resing

Ich denke, es gibt ein wirklich gutes MSDN Blog Post zu diesem Thema von Laurentiu Cristofor:

Das Erste, was über die SQL Server-Sicherheit verstanden werden muss, ist, dass zwei Sicherheitsbereiche betroffen sind - der Server und die Datenbank. Der Serverbereich umfasst mehrere Datenbankbereiche. Alle Arbeiten werden im Kontext einer bestimmten Datenbank ausgeführt. Um jedoch die Arbeit ausführen zu können, muss zuerst der Zugriff auf den Server und dann auf die Datenbank erfolgen.

Der Zugriff auf den Server erfolgt über Logins. Es gibt zwei Hauptkategorien von Anmeldungen: SQL Server-authentifizierte Anmeldungen und Windows-authentifizierte Anmeldungen. Ich werde normalerweise auf diese verweisen, indem ich die kürzeren Namen von SQL-Anmeldungen und Windows-Anmeldungen verwende. Windows-authentifizierte Anmeldungen können entweder Windows-Benutzern oder Windows-Gruppen zugeordnete Anmeldungen sein. Um eine Verbindung zum Server herstellen zu können, muss der Zugriff über einen dieser Typen oder Anmeldungen erfolgen - Anmeldungen ermöglichen den Zugriff auf den Serverbereich.

Anmeldungen reichen jedoch nicht aus, da in der Regel in einer Datenbank gearbeitet wird und Datenbanken separate Bereiche sind. Der Zugriff auf Datenbanken erfolgt über Benutzer.

Benutzer werden Anmeldungen zugeordnet, und die Zuordnung wird durch die SID-Eigenschaft von Anmeldungen und Benutzern ausgedrückt. Ein Login wird einem Benutzer in einer Datenbank zugeordnet, wenn dessen SID-Werte identisch sind. Abhängig von der Art der Anmeldung können wir daher eine Kategorisierung der Benutzer vornehmen, die die obige Kategorisierung für Anmeldungen nachahmt. Wir haben also SQL-Benutzer und Windows-Benutzer, und die letztere Kategorie besteht aus Benutzern, die Windows-Benutzeranmeldungen zugeordnet sind, und aus Benutzern, die Windows-Gruppenanmeldungen zugeordnet sind.

Machen wir einen Schritt zurück, um einen schnellen Überblick zu erhalten: Ein Login ermöglicht den Zugriff auf den Server und den weiteren Zugriff auf In der Datenbank muss eine Datenbank vorhanden sein, deren Benutzer dem Login zugeordnet ist.

das ist der Link zum vollständigen Beitrag.

23
David Leitner

Zusamenfassend,

Logins hat Zugriff auf den Server.

und

Benutzer hat Zugriff auf die Datenbank.

21
Vikrant Kedari

Ich denke, das ist eine sehr nützliche Frage mit einer guten Antwort. Nur um meine zwei Cent von der MSDN hinzuzufügen Login erstellen Seite:

Ein Login ist ein Sicherheitsprinzipal oder eine Entität, die von einem sicheren System authentifiziert werden kann. Benutzer benötigen eine Anmeldung, um eine Verbindung zu SQL Server herzustellen. Sie können eine Anmeldung basierend auf einem Windows-Prinzipal (z. B. einem Domänenbenutzer oder einer Windows-Domänengruppe) oder eine Anmeldung erstellen, die nicht auf einem Windows-Prinzipal basiert (z. B. einer SQL Server-Anmeldung).

Hinweis:
Um die SQL Server-Authentifizierung verwenden zu können, muss das Datenbankmodul die Authentifizierung im gemischten Modus verwenden. Weitere Informationen finden Sie unter Auswählen eines Authentifizierungsmodus.

Als Sicherheitsprinzip können Anmeldeberechtigungen erteilt werden. Der Bereich eines Logins ist das gesamte Datenbankmodul. Um eine Verbindung zu einer bestimmten Datenbank in der Instanz von SQL Server herzustellen, muss eine Anmeldung einem Datenbankbenutzer zugeordnet werden. Berechtigungen in der Datenbank werden dem Datenbankbenutzer erteilt und verweigert, nicht der Anmeldung. Berechtigungen, die den Bereich der gesamten Instanz von SQL Server umfassen (z. B. die CREATE ENDPOINT-Berechtigung), können für eine Anmeldung erteilt werden.

6
ilmatte