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. Dieses Feature wird in einer zukünftigen Version von Microsoft SQL Server entfernt. Verwenden Sie dieses Feature 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. |
Transact-SQL-Syntaxkonventionen
Syntax
sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner'
Argumente
[ @objname = ] 'object'
Ist der Name einer vorhandenen Tabelle, Sicht oder gespeicherten Prozedur in der aktuellen Datenbank. object ist ein Wert vom Datentyp nvarchar(776) und weist keinen Standardwert auf. object kann mit dem vorhandenen Objektbesitzer im Format existing_owner**.**object gekennzeichnet werden, wenn das Schema und der Schemabesitzer den gleichen Namen aufweisen.
[ @newowner=] **'**owner '
Ist der Name des Sicherheitskontos, das zum neuen Besitzer des Objekts wird. owner ist ein Wert vom Datentyp sysname und weist keinen Standardwert auf. Bei owner muss es sich um einen gültigen Datenbankbenutzer, eine gültige Serverrolle, einen gültigen Microsoft Windows-Anmeldenamen oder eine gültige Windows-Gruppe mit Zugriff auf die aktuelle Datenbank handeln. 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. Weitere Informationen zu Datenbankskripts finden Sie unter Dokumentieren und Erstellen von Skripts in Bezug auf Datenbanken.
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 SCHEMA (Transact-SQL)
ALTER DATABASE (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
sp_changedbowner (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)