Condividi tramite


sp_changeobjectowner (Transact-SQL)

Modifica il proprietario di un oggetto del database corrente.

Nota importanteImportante

Questa stored procedure funziona solo con gli oggetti disponibili in Microsoft SQL Server 2000. Questa funzionalità verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Utilizzare ALTER SCHEMA o ALTER AUTHORIZATION in alternativa. La stored procedure sp_changeobjectowner modifica sia lo schema che il proprietario. Per mantenere la compatibilità con le versioni precedenti di SQL Server, questa stored procedure modifica i proprietari degli oggetti solo quando sia il proprietario corrente che il nuovo proprietario possiedono schemi il cui nome corrisponde al relativo nome utente di database.

Nota importanteImportante

A questa stored procedure è stato aggiunto un nuovo requisito di autorizzazione.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner'

Argomenti

  • [ @objname = ] 'object'
    Nome di una tabella, vista, funzione definita dall'utente o stored procedure esistente nel database corrente. object è di tipo nvarchar(776) e non prevede alcun valore predefinito. object può essere qualificato con il nome del proprietario dell'oggetto esistente nella forma existing_owner**.**object se lo schema e il relativo proprietario hanno lo stesso nome.

  • [ @newowner=] **'**owner '
    Nome dell'account di sicurezza che rappresenta il nuovo proprietario dell'oggetto. owner è di tipo sysname e non prevede alcun valore predefinito. owner deve corrispondere a un utente di database, un ruolo di server, un account di accesso di Microsoft Windows o un gruppo di Windows valido con accesso al database corrente. Se il nuovo proprietario è un utente di Windows o un gruppo di Windows per cui non esiste un'entità corrispondente a livello di database, verrà creato un utente di database.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

sp_changeobjectowner rimuove tutte le autorizzazioni esistenti dall'oggetto. Dopo aver eseguito la stored procedure sp_changeobjectowner è necessario riapplicare le autorizzazioni che si desidera conservare. Prima di eseguire sp_changeobjectowner, è pertanto consigliabile includere le autorizzazioni esistenti in uno script. Dopo avere modificato il proprietario dell'oggetto, è possibile eseguire lo script per riapplicare le autorizzazioni. È prima necessario modificare il proprietario dell'oggetto nello script.

Per modificare il proprietario di un'entità a sicurezza diretta, utilizzare ALTER AUTHORIZATION. Per modificare uno schema, utilizzare ALTER SCHEMA.

Autorizzazioni

È richiesta l'appartenenza al ruolo predefinito del database db_owner, o l'appartenenza a entrambi i ruoli predefiniti del database db_ddladmin e db_securityadmin, nonché l'autorizzazione CONTROL per l'oggetto.

Esempi

Nell'esempio seguente viene modificato il proprietario della tabella authors in Corporate\GeorgeW.

EXEC sp_changeobjectowner 'authors', 'Corporate\GeorgeW';
GO

Vedere anche

Riferimento

ALTER SCHEMA (Transact-SQL)

ALTER DATABASE (Transact-SQL)

ALTER AUTHORIZATION (Transact-SQL)

sp_changedbowner (Transact-SQL)

Stored procedure di sistema (Transact-SQL)