Freigeben über


sp_changedbowner (Transact-SQL)

Gilt für: SQL Server

Ändert den Besitzer der aktuellen Datenbank.

Wichtig

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

Transact-SQL-Syntaxkonventionen

Syntax

sp_changedbowner
    [ @loginame = ] N'loginame'
    [ , [ @map = ] 'map' ]
[ ; ]

Argumente

[ @loginame = ] N'loginame'

Die Anmelde-ID des neuen Besitzers der aktuellen Datenbank. @loginame ist "sysname" ohne Standard. @loginame muss ein bereits vorhandener SQL Server-Anmelde- oder Windows-Benutzer sein. @loginame kann nicht der Besitzer der aktuellen Datenbank werden, wenn sie bereits Über ein vorhandenes Benutzerkonto in der Datenbank Zugriff auf die Datenbank hat. Um dieses Szenario zu vermeiden, legen Sie den Benutzer zuerst in der aktuellen Datenbank ab.

[ @map = ] 'map'

Dieser Parameter ist veraltet und wird für die Abwärtskompatibilität von Skripts beibehalten.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Hinweise

Nach sp_changedbowner der Ausführung wird der neue Besitzer als dbo Benutzer innerhalb der Datenbank bezeichnet. Der dbo Benutzer verfügt über konkludente Berechtigungen, um alle Aktivitäten in der Datenbank auszuführen.

Der Besitzer der masterDatenbanken modeloder tempdb Systemdatenbanken kann nicht geändert werden.

Führen Sie die sp_helplogins gespeicherte Prozedur aus, um eine Liste der gültigen @loginame Werte anzuzeigen.

Wenn nur der parameter @loginame ausgeführt wirdsp_changedbowner, wird der Datenbankbesitz in @loginame geändert.

Sie können den Besitzer aller sicherungsfähigen Daten mithilfe der ALTER AUTHORIZATION Anweisung ändern. Weitere Informationen finden Sie unter ALTER AUTHORIZATION.

Berechtigungen

Erfordert die TAKE OWNERSHIP-Berechtigung für die Datenbank. Wenn der neue Besitzer über einen entsprechenden Benutzer in der Datenbank verfügt, ist die Berechtigung für die Anmeldung erforderlich IMPERSONATE , andernfalls ist die Berechtigung auf dem Server erforderlich CONTROL SERVER .

Beispiele

Im folgenden Beispiel wird der Anmeldename Albert als Besitzer der aktuellen Datenbank festgelegt.

EXEC sp_changedbowner 'Albert';