Freigeben über


sp_changeobjectowner (Transact-SQL)

Gilt für: SQL Server

Ändert den Besitzer eines Objekts in der aktuellen Datenbank.

Wichtig

Diese gespeicherte Prozedur funktioniert nur mit den Objekten, die in SQL Server 2000 (8.x) verfügbar sind. Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Verwenden Sie stattdessen ALTER SCHEMA oder ALTER AUTHORIZATION . sp_changeobjectowner ändert sowohl das Schema als auch den Besitzer. Um die Kompatibilität mit früheren Versionen von SQL Server zu erhalten, ändert diese gespeicherte Prozedur nur Objektbesitzer, wenn sowohl der aktuelle Besitzer als auch die neuen besitzereigenen Schemas mit demselben Namen wie ihre Datenbankbenutzernamen vorhanden sind.

Transact-SQL-Syntaxkonventionen

Syntax

sp_changeobjectowner
    [ @objname = ] N'objname'
    , [ @newowner = ] N'newowner'
[ ; ]

Argumente

[ @objname = ] N'objname'

@objname ist nvarchar(776), ohne Standard.

Der Name einer vorhandenen Tabelle, Ansicht, benutzerdefinierten Funktion oder gespeicherten Prozedur in der aktuellen Datenbank. @objname ist eine nvarchar(776), ohne Standard. @objname kann mit dem Besitzer des vorhandenen Objekts qualifiziert werden, wenn <existing_owner>.<object_name> das Schema und sein Besitzer denselben Namen haben.

[ @newowner = ] N'newowner'

Der Name des Sicherheitskontos, das der neue Besitzer des Objekts ist. @newowner ist "sysname" ohne Standard. @newowner muss ein gültiger Datenbankbenutzer, eine Serverrolle, ein Windows-Benutzer oder eine Windows-Gruppe mit Zugriff auf die aktuelle Datenbank sein. Wenn der neue Besitzer ein Windows-Benutzer oder eine Windows-Gruppe ist, für die kein entsprechender Prinzipal auf Datenbankebene vorhanden ist, wird ein Datenbankbenutzer erstellt.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Hinweise

sp_changeobjectowner entfernt alle vorhandenen Berechtigungen aus dem Objekt. Sie müssen alle Berechtigungen erneut anwenden, die Sie nach der Ausführung sp_changeobjectownerbeibehalten möchten. Daher empfiehlt es sich, vorhandene Berechtigungen vor dem Ausführen zu skripten sp_changeobjectowner. Nachdem der Besitz des Objekts geändert wurde, können Sie das Skript verwenden, um Berechtigungen erneut anzuwenden. Sie müssen den Objektbesitzer im Berechtigungsskript vor dem Ausführen ändern.

Verwenden Sie die Verwendung ALTER AUTHORIZATION, um den Besitzer eines sicherungsfähigen Steuerelements zu ändern. Um ein Schema zu ändern, verwenden Sie ALTER SCHEMA.

Berechtigungen

Erfordert die Mitgliedschaft in der db_owner festen Datenbankrolle oder die Mitgliedschaft in der db_ddladmin festen Datenbankrolle und der db_securityadmin festen Datenbankrolle sowie die CONTROL Berechtigung für das Objekt.

Beispiele

Im folgenden Beispiel wird der Besitzer der authors-Tabelle zu Corporate\GeorgeW geändert.

EXEC sp_changeobjectowner 'authors', 'Corporate\GeorgeW';
GO