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 master
Datenbanken model
oder 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';