229: Die %1!-Berechtigung wurde für das '%2!'-Objekt, '%3!'-Datenbank, '%4!'-Schema verweigert.
Fehlermeldung:
Meldung 229, Ebene 14, Status 5, Zeile 1
Die %1!-Berechtigung wurde für das '%2!'-Objekt, '%3!'-Datenbank, '%4!'-Schema verweigert.
Ebene:
14.
Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht auf ein Datenbankobjekt zuzugreifen, für das man keine Berechtigung hat.
Auswirkungen:
Das SQL Statement kann zwar geparst werden, jedoch zur Laufzeit wird der Fehler ausgelöst.
Behebung:
Fehler der Ebene 14 sind Fehler, die vom Anwender hervorgerufen werden. Sie können und müssen vom Anwender korrigiert werden. Das Statement kann so nicht ausgeführt werden. Aufgrund der fehlenden Berechtigungen ist kein Zugriff möglich. Man muß sich mit dem Systemadministrator in Verbindung setzen, um den Zugriff zu prüfen.
Versionen:
Alle Versionen von SQL Server.
Beispiele:
USE Master;
GO
DROP LOGIN MyUser;
GO
CREATE LOGIN MyUser
WITH PASSWORD = 'abc';
USE Northwind;
DROP USER MyUser;
CREATE USER MyUser FOR LOGIN MyUser
WITH DEFAULT_SCHEMA = dbo;
GO
REVOKE SELECT ON OBJECT::dbo.Orders FROM MyUser;
GO
SETUSER 'MyUser'
GO
SELECT *
FROM dbo.Orders
SETUSER;
Anmerkungen:
Im obigen Beispiel wird zunächst ein Login erstellt, anschliessend ein User. Diesem User wird die SELECT Berechtigung für die Orders Tabelle der Northwind Datenbank entzogen. Anschliessend wird per SETUSER der Sicherheitskontext gewechselt und die Identität des neuen Users angewendet. Das abgesetzte SELECT Statement unter diesem neuen User löst den Fehler aus.