sp_changeobjectowner (Transact-SQL)

Ändert den Besitzer eines Objekts in der aktuellen Datenbank.

Wichtiger HinweisWichtig

Diese gespeicherte Prozedur kann nur mit den Objekten in MicrosoftSQL 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.

Wichtiger HinweisWichtig

Dieser gespeicherten Prozedur wurde eine neue Berechtigungsanforderung hinzugefügt.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner'

Argumente

  • [ @objname = ] 'object'
    Der Name einer vorhandenen Tabelle, Sicht, benutzerdefinierten Funktion 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 '
    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