sp_changedbowner (Transact-SQL)
Si applica a: SQL Server
Modifica il proprietario del database corrente.
Importante
Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. In alternativa, usare ALTER AUTHORIZATION .
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_changedbowner
[ @loginame = ] N'loginame'
[ , [ @map = ] 'map' ]
[ ; ]
Argomenti
[ @loginame = ] N'loginame'
ID di accesso del nuovo proprietario del database corrente. @loginame è sysname, senza impostazione predefinita. @loginame deve essere un account di accesso di SQL Server già esistente o un utente di Windows. @loginame non può diventare il proprietario del database corrente se ha già accesso al database tramite un account di sicurezza utente esistente all'interno del database. Per evitare questo scenario, eliminare prima l'utente all'interno del database corrente.
[ @map = ] 'map'
Questo parametro è deprecato e viene mantenuto per la compatibilità con le versioni precedenti degli script.
Valori del codice restituito
0
(esito positivo) o 1
(errore).
Osservazioni:
Dopo sp_changedbowner
l'esecuzione, il nuovo proprietario è noto come dbo
utente all'interno del database. L'utente dbo
dispone delle autorizzazioni implicite per eseguire tutte le attività nel database.
Il proprietario dei master
database di sistema , model
o tempdb
non può essere modificato.
Per visualizzare un elenco dei valori di @loginame validi, eseguire la sp_helplogins
stored procedure.
L'esecuzione sp_changedbowner
con solo il parametro @loginame modifica la proprietà del database in @loginame.
È possibile modificare il proprietario di qualsiasi entità a protezione diretta usando l'istruzione ALTER AUTHORIZATION
. Per altre informazioni, vedere ALTER AUTHORIZATION.
Autorizzazioni
È richiesta l'autorizzazione TAKE OWNERSHIP
per il database. Se il nuovo proprietario dispone di un utente corrispondente nel database, è necessaria IMPERSONATE
l'autorizzazione per l'account di accesso. In caso contrario, è necessaria CONTROL SERVER
l'autorizzazione per il server.
Esempi
Nell'esempio seguente l'account di accesso Albert
diventa il proprietario del database corrente.
EXEC sp_changedbowner 'Albert';