Condividi tramite


sp_changedbowner (Transact-SQL)

Modifica il proprietario del database corrente.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_changedbowner [ @loginame = ] 'login'
          [ , [ @map= ] remap_alias_flag ]

Argomenti

  • [ @loginame= ] 'login'
    ID di accesso del nuovo proprietario del database corrente. login è di tipo sysname e non prevede alcun valore predefinito. login deve essere un account di accesso di SQL Server esistente oppure un utente di Microsoft Windows. login non può essere impostato come proprietario del database corrente se dispone già dell'accesso al database tramite un alias esistente o un account di protezione utente all'interno del database. Per evitare questa situazione, rimuovere l'alias o l'utente nel database corrente.
  • [ @map= ] remap_alias_flag
    Valore true o false, che indica se gli alias esistenti assegnati al vecchio proprietario del database (dbo) sono mappati al nuovo proprietario del database corrente oppure eliminati. remap_alias_flag è di tipo varchar(5) e il valore predefinito è NULL. Ciò indica che gli alias esistenti del vecchio proprietario dbo sono mappati al nuovo proprietario del database corrente. false indica che gli alias esistenti del vecchio proprietario del database vengono eliminati.

Osservazioni

Dopo l'esecuzione di sp_changedbowner, nel database il nuovo proprietario è noto come utente dbo. L'utente dbo dispone di autorizzazioni implicite per l'esecuzione di qualsiasi operazione nel database.

Il proprietario dei database di sistema master, model e tempdb non può essere modificato.

Per visualizzare un elenco dei valori validi per login, eseguire la stored procedure sp_helplogins.

Se si esegue sp_changedbowner solo con il parametro login, la proprietà del database viene impostata su login e gli alias degli utenti precedentemente assegnati a dbo vengono mappati al nuovo proprietario del database.

È possibile modificare il proprietario di qualsiasi entità a protezione diretta mediante l'istruzione ALTER AUTHORIZATION. Per ulteriori informazioni, vedere ALTER AUTHORIZATION (Transact-SQL).

Autorizzazioni

È richiesta l'autorizzazione TAKE OWNERSHIP per il database. Se il nuovo proprietario dispone di un utente corrispondente nel database, è richiesta l'autorizzazione IMPERSONATE per l'account di accesso. In caso contrario, è richiesta l'autorizzazione CONTROL SERVER per il server.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Esempi

Nell'esempio seguente l'account di accesso Albert viene impostato come proprietario del database corrente e quindi viene mappato agli alias esistenti Albert assegnati al vecchio proprietario del database.

EXEC sp_changedbowner 'Albert'

Vedere anche

Riferimento

Stored procedure di protezione (Transact-SQL)
CREATE DATABASE (Transact-SQL)
sp_dropalias (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_helpdb (Transact-SQL)
sp_helplogins (Transact-SQL)
Stored procedure di sistema (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005