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 Microsoft 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.

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, Ansicht, benutzerdefinierten Funktion oder gespeicherten Prozedur in der aktuellen Datenbank. object is an nvarchar(776), with no default. object can be qualified with the owner of the existing object, in the form existing_owner.-Objekt, wenn das Schema und sein Besitzer denselben Namen haben.

[ @newowner = ] 'owner_ ' Ist der Name des Sicherheitskontos, das der neue Besitzer des Objekts ist. "owner " ist "sysname" ohne Standard. Der Besitzer muss ein gültiger Datenbankbenutzer, eine Serverrolle, eine Microsoft Windows-Anmeldung 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“ (erfolgreich) oder „1“ (fehlerhaft)

Hinweise

sp_changeobjectowner entfernt alle vorhandenen Berechtigungen aus dem Objekt. Sie müssen alle Berechtigungen erneut anwenden, die Sie beibehalten möchten, nachdem sie sp_changeobjectowner ausgeführt haben. Daher wird empfohlen, vorhandene Berechtigungen vor dem Ausführen von sp_changeobjectowner zu skripten. 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

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 BERECHTIGUNG CONTROL 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  

Weitere Informationen

ALTER SCHEMA (Transact-SQL)
ALTER DATABASE (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
sp_changedbowner (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)