4613: Der Berechtigende (GRANTOR) hat nicht die GRANT-Berechtigung.
Fehlermeldung:
Meldung 4613, Ebene 16, Status 1, Zeile 2
Der Berechtigende (GRANTOR) hat nicht die GRANT-Berechtigung.
Ebene:
16.
Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht Berechtigungen zu vergeben, ohne die entsprechende Berechtigung dazu zu besitzen.
Auswirkungen:
Das SQL Statement kann zwar geparst werden, jedoch zur Laufzeit wird der Fehler ausgelöst.
Behebung:
Fehler der Ebene 16 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. Die Berechtigungen können nicht vergeben werden.
Versionen:
Alle Versionen von SQL Server.
Beispiele:
USE Master;
GO
DROP LOGIN MyUserA;
DROP LOGIN MyUserB;
GO
CREATE LOGIN MyUserA
WITH PASSWORD = 'abc';
CREATE LOGIN MyUserB
WITH PASSWORD = 'def';
--USE Northwind;
DROP USER MyUserA;
DROP USER MyUserB
CREATE USER MyUserA FOR LOGIN MyUserA
WITH DEFAULT_SCHEMA = dbo;
CREATE USER MyUserB FOR LOGIN MyUserB
WITH DEFAULT_SCHEMA = dbo;
GO
SETUSER 'MyUserA'
GO
USE Master;
GRANT CREATE DATABASE TO MyUserB;
SETUSER;USE Master;
GO
DROP LOGIN MyUserA;
DROP LOGIN MyUserB;
GO
CREATE LOGIN MyUserA
WITH PASSWORD = 'abc';
CREATE LOGIN MyUserB
WITH PASSWORD = 'def';
--USE Northwind;
DROP USER MyUserA;
DROP USER MyUserB
CREATE USER MyUserA FOR LOGIN MyUserA
WITH DEFAULT_SCHEMA = dbo;
CREATE USER MyUserB FOR LOGIN MyUserB
WITH DEFAULT_SCHEMA = dbo;
GO
SETUSER 'MyUserA'
GO
USE Master;
GRANT CREATE DATABASE TO MyUserB;
SETUSER;
Anmerkungen:
Im obigen Beispiel werden in der Master Datenbank zwei Logins und Users angelegt. Anschliessend wird über SETUSER der sicherheitskontext auf MyUserA gesetzt. Innerhalb dieses Kontextes versucht dann MyUserA die CREATE DATABASE Berechtigung für MyUserB zu vergeben, ohne selber die Berechtigung zu haben, diese zu vergeben. Dies löst den Fehler aus.