sp_changeobjectowner (Transact-SQL)
Ändert den Besitzer eines Objekts in der aktuellen Datenbank.
Wichtig
Diese gespeicherte Prozedur kann nur mit den Objekten in Microsoft SQL Server 2000 verwendet werden.Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird. Verwenden Sie stattdessen ALTER SCHEMA oder ALTER AUTHORIZATION.sp_changeobjectowner ändert sowohl das Schema als auch den Besitzer.Aus Gründen der Kompatibilität mit früheren Versionen von SQL Server ändert diese gespeicherte Prozedur nur Objektbesitzer, wenn sowohl der aktuelle Besitzer als auch der neue Besitzer Schemas besitzen, die den gleichen Namen wie die Datenbankbenutzernamen aufweisen.
Wichtig
Dieser gespeicherten Prozedur wurde eine neue Berechtigungsanforderung hinzugefügt.
Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version). |
Transact-SQL-Syntaxkonventionen
Syntax
sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner'
Argumente
[ @objname = ] 'object'
Der Name einer vorhandenen Tabelle, Sicht, benutzerdefinierten Funktion oder gespeicherter Prozedur in der aktuellen Datenbank. object ist vom Datentyp nvarchar(776) und hat keinen Standardwert. object kann mit dem Besitzer des vorhandenen Objekts qualifiziert werden im Format existing_owner**.**object qualifiziert werden, wenn der Name des Schemas und der Name des Besitzers übereinstimmen.[ @newowner=] **'**owner '
Der Name des Sicherheitskontos, das den neuen Besitzer des Objekts darstellt. owner ist vom Datentyp sysname und hat keinen Standardwert. owner muss ein gültiger Datenbankbenutzer, eine gültige Serverrolle, ein gültiger Microsoft Windows-Anmeldename oder eine Windows-Gruppe mit Zugriff auf die aktuelle Datenbank sein. Wenn es sich beim neuen Besitzer um einen Windows-Benutzer oder eine Windows-Gruppe handelt, für den bzw. die kein entsprechender Datenbankprinzipal vorhanden ist, wird ein Datenbankbenutzer erstellt.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Hinweise
sp_changeobjectowner entfernt alle vorhandenen Berechtigungen vom Objekt. Sie müssen sämtliche Berechtigungen erneut zuweisen, die Sie nach dem Ausführen von sp_changeobjectowner beibehalten möchten. Daher sollten Sie bestehende Berechtigungen vor dem Ausführen von sp_changeobjectowner ausgeben. Nachdem der Besitz des Objekts geändert wurde, können Sie das Skript verwenden, um die Berechtigungen erneut zuzuweisen. Sie müssen den Objektbesitzer im Berechtigungsskript vor dem Ausführen ändern.
Wenn Sie den Besitzer eines sicherungsfähigen Elements ändern möchten, verwenden Sie ALTER AUTHORIZATION. Zum Ändern eines Schemas verwenden Sie ALTER SCHEMA.
Berechtigungen
Setzt die Mitgliedschaft in der festen Datenbankrolle db_owner oder die Mitgliedschaft sowohl in der festen Datenbankrolle db_ddladmin als auch der festen Datenbankrolle db_securityadmin sowie die CONTROL-Berechtigung für das Objekt voraus.
Beispiele
Im folgenden Beispiel wird der Besitzer der authors-Tabelle zu Corporate\GeorgeW geändert.
EXEC sp_changeobjectowner 'authors', 'Corporate\GeorgeW';
GO
Siehe auch
Verweis
ALTER AUTHORIZATION (Transact-SQL)