Prinzipale (Datenbank-Engine)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Prinzipale sind Entitäten, die SQL Server-Ressourcen anfordern können. Wie bei anderen Komponenten des SQL Server-Autorisierungsmodells können Prinzipale hierarchisch angeordnet werden. Der Einflussbereich eines Prinzipals richtet sich nach dem Definitionsbereich des Prinzipals (Windows, Server, Datenbank) und danach, ob der Prinzipal unteilbar ist oder es sich um eine Auflistung handelt. Ein Windows-Anmeldename ist ein Beispiel eines unteilbaren Prinzipals und eine Windows-Gruppe das eines Prinzipals, der eine Auflistung darstellt. Jeder Prinzipal weist eine Sicherheits-ID (SID) auf. Dieser Artikel gilt für alle Versionen von SQL Server, jedoch gibt es bei Prinzipalen auf Serverebene in SQL-Datenbank oder Azure Synapse Analytics eine Reihe von Einschränkungen.

Hinweis

Microsoft Entra ID war bisher unter Azure Active Directory (Azure AD) bekannt.

Prinzipale auf SQL Server-Ebene

  • Ein Anmeldename für die SQL Server-Authentifizierung
  • Anmeldung mit Windows-Authentifizierung für Windows-Benutzer
  • Anmeldung mit Windows-Authentifizierung für Windows-Gruppe
  • Microsoft Entra-Authentifizierungsanmeldung für einen Microsoft Entra-Benutzer
  • Microsoft Entra-Authentifizierungsanmeldung für eine Microsoft Entra-Gruppe
  • Serverrolle

Prinzipale auf Datenbankebene

  • Datenbankbenutzer (Es gibt 12 Benutzertypen. Weitere Informationen finden Sie unter CREATE USER.)
  • Datenbankrolle
  • Anwendungsrolle

Anmeldename „sa“

Der SQL Server-Anmeldename sa ist ein Prinzipal auf Serverebene. Er wird standardmäßig bei der Installation einer Instanz erstellt. Ab SQL Server 2005 (9.x) ist die Standarddatenbank von sa Master. Dieses Verhalten unterscheidet sich von früheren Versionen von SQL Server. Der Anmeldename sa ist ein Mitglied der festen Rolle auf Serverebene sysadmin. Der sa-Anmeldename besitzt alle Berechtigungen auf dem Server und kann nicht beschränkt werden. Der sa-Anmeldename kann nicht gelöscht werden. Jedoch kann er deaktiviert werden, sodass er nicht verwendet werden kann.

dbo-Benutzer und dbo-Schema

Der dbo-Benutzer ist ein spezieller Benutzerprinzipal in jeder Datenbank. Alle SQL Server-Administratoren, Mitglieder der festen Serverrolle sysadmin, der sa-Anmeldename und die Besitzer der Datenbank treten in Datenbanken als dbo-Benutzer auf. Der dbo-Benutzer besitzt alle Berechtigungen in der Datenbank; er unterliegt keinen Beschränkungen und kann nicht gelöscht werden. Zwar steht dbo für Datenbankbesitzer, doch ist das dbo-Benutzerkonto nicht identisch mit der festen Datenbankrolle db_owner, und die feste Datenbankrolle db_owner ist wiederum nicht identisch mit dem Benutzerkonto, das als Besitzer der Datenbank vermerkt ist.
Der dbo-Benutzer besitzt das dbo-Schema. Das dbo-Schema ist das Standardschema für alle Benutzer, sofern kein anderes Schema angegeben wird. Das dbo-Schema kann nicht gelöscht werden.

Serverrolle und Datenbankrolle „public“

Jeder Anmeldename gehört zu der festen Serverrolle public, und jeder Datenbankbenutzer gehört zu der Datenbankrolle public. Wenn einem Anmeldenamen oder Benutzer keine bestimmten Berechtigungen für ein sicherungsfähiges Element erteilt oder verweigert werden, erbt der Anmeldename oder Benutzer die Berechtigungen, die der Datenbankrolle public für dieses sicherungsfähige Element erteilt wurden. Die feste Serverrolle public und die feste Datenbankrolle public können nicht gelöscht werden. Sie können jedoch Berechtigungen für die Rollen public widerrufen. Es gibt viele Berechtigungen, die den Rollen public standardmäßig zugewiesen sind. Die meisten dieser Berechtigungen sind für Routinevorgänge in der Datenbank erforderlich. Diese Vorgänge sollten von jedem ausgeführt werden können. Gehen Sie beim Aufheben der Berechtigungen von public-Anmeldenamen oder -Benutzern vorsichtig vor, da sich die Aufhebung auf alle Anmeldenamen/Benutzer auswirkt. Im Allgemeinen sollten Sie public-Berechtigungen nicht verweigern, da die DENY-Anweisung alle GRANT-Anweisungen außer Kraft setzt, die Sie möglicherweise einzelnen Benutzern gewähren.

INFORMATION_SCHEMA und sys-Benutzer und -Schemas

Jede Datenbank enthält zwei Entitäten, die in Katalogsichten als Benutzer angezeigt werden: INFORMATION_SCHEMA und sys. Diese Entitäten sind für die interne Verwendung durch die Datenbank-Engine erforderlich. Sie können nicht geändert oder gelöscht werden.

Zertifikatbasierte SQL Server-Anmeldenamen

Serverprinzipale, deren Name von doppelten Nummernzeichen (##) eingeschlossen ist, sind nur für die systeminterne Verwendung vorgesehen. Die folgenden Prinzipale werden bei der Installation von SQL Server aus Zertifikaten erstellt und sollten nicht gelöscht werden.

  • ##MS_SQLResourceSigningCertificate##
  • ##MS_SQLReplicationSigningCertificate##
  • ##MS_SQLAuthenticatorCertificate##
  • ##MS_AgentSigningCertificate##
  • ##MS_PolicyEventProcessingLogin##
  • ##MS_PolicySigningCertificate##
  • ##MS_PolicyTsqlExecutionLogin##

Diese Prinzipalkonten verfügen nicht über Kennwörter, die vom Administrator geändert werden können, da sie auf den an Microsoft ausgestellten Zertifikaten basieren.

Der guest-Benutzer

Jede Datenbank enthält einen guest. Dem guest -Benutzer erteilte Berechtigungen werden von Benutzern geerbt, die Zugriff auf die Datenbank, jedoch kein Benutzerkonto in der Datenbank besitzen. Der guest-Benutzer kann nicht gelöscht werden. Er kann jedoch deaktiviert werden, indem seine CONNECT-Berechtigung widerrufen wird. Die CONNECT-Berechtigung kann durch Ausführen von REVOKE CONNECT FROM GUEST; in einer beliebigen Datenbank mit Ausnahme der master- oder tempdb-Datenbank aufgehoben werden.

Informationen zum Entwerfen eines Berechtigungssystems finden Sie unter Getting Started with Database Engine Permissions.

Dieser Abschnitt der SQL Server-Onlinedokumentation umfasst die folgenden Themen:

Weitere Informationen

Sichern von SQL Server
sys.database_principals (Transact-SQL)
sys.server_principals (Transact-SQL)
sys.sql_logins (Transact-SQL)
sys.database_role_members (Transact-SQL)
Rollen auf Serverebene
Rollen auf Datenbankebene