MSSQLSERVER_916
Gilt für: SQL Server
Details
attribute | Wert |
---|---|
Produktname | SQL Server |
Ereignis-ID | 916 |
Ereignisquelle | MSSQLSERVER |
Komponente | SQLEngine |
Symbolischer Name | NOTUSER |
Meldungstext | Der Serverprinzipal "%.*ls" kann nicht unter dem aktuellen Sicherheitskontext auf die Datenbank "%.*ls" zugreifen. |
Erklärung
Unter diesem Anmeldenamen sind keine ausreichenden Berechtigungen verfügbar, um eine Verbindung mit der benannten Datenbank herzustellen. Anmeldungen, die eine Verbindung mit dieser Instanz von SQL Server herstellen können, aber keine bestimmten Berechtigungen in einer Datenbank besitzen, erhalten die Berechtigungen des Gastbenutzers. Dies ist eine Sicherheitsmaßnahme, um zu verhindern, dass Benutzer in einer Datenbank eine Verbindung mit anderen Datenbanken herstellen, für die sie keine Rechte besitzen. Diese Fehlermeldung kann ausgegeben werden, wenn der Gastbenutzer keine CONNECT-Berechtigung für die benannte Datenbank hat und die TRUSTWORTHY-Eigenschaft nicht festgelegt ist. Diese Fehlermeldung kann ausgegeben werden, wenn der Gastbenutzer keine CONNECT-Berechtigung für die benannte Datenbank hat.
Wenn DIE CONNECT-Berechtigung für die msdb-Datenbank verweigert oder widerrufen wird, kann SQL Server Management Studio diesen Fehler erhalten, wenn Objekt-Explorer versucht, den Richtlinienbasierten Verwaltungsstatus jeder Datenbank anzuzeigen. Der Objekt-Explorer verwendet die Berechtigungen des aktuellen Anmeldenamens, um diese Informationen aus der msdb-Datenbank abzufragen, wodurch der Fehler verursacht wird. Die folgende Fehlermeldung wird ebenfalls ausgegeben:
Fehler beim Abrufen von Daten für diese Anforderung. (Microsoft.SqlServer.Management.Sdk.Sfc)
Benutzeraktion
Warnung
Bevor Sie diese Sicherheitsmaßnahme umgehen, sollten Sie sichergehen, dass Sie genau wissen, wie Benutzer in den verschiedenen Datenbanken authentifiziert werden. Mithilfe der folgenden Methoden können Benutzer, die über Berechtigungen für eine Datenbank verfügen, eine Verbindung mit anderen Datenbanken herstellen. Auf diese Weise können Daten für böswillige Benutzer offen gelegt werden. Wenn enthaltene Datenbanken aktiviert sind, können die folgenden Schritte Datenbankbesitzern in einer Datenbank den Zugriff auf andere Datenbanken in der Instanz von SQL Server ermöglichen.
Sie können auf eine der folgenden Arten eine Verbindung mit der Datenbank herstellen:
Gewähren Sie spezifischen Anmeldezugriff für die benannte Datenbank. Im folgenden Beispiel wird dem Anmeldenamen
Adventure-Works\Larry
Zugriff auf diemsdb
-Datenbank gewährt.USE msdb ; GO GRANT CONNECT TO [Adventure-Works\Larry] ;
Gewähren Sie dem Gastbenutzer für die in der Fehlermeldung genannte Datenbank die CONNECT-Berechtigung. Im folgenden Beispiel wird die
CONNECT
-Berechtigung für diemsdb
-Datenbank dem Benutzerguest
erteilt.USE msdb ; GO GRANT CONNECT TO guest ;
Aktivieren Sie die TRUSTWORTHY-Eigenschaft für die Datenbank, die den Benutzer authentifiziert hat.
ALTER DATABASE AdventureWorks SET TRUSTWORTHY ON;