sp_changeobjectowner (Transact-SQL)

Si applica a:SQL Server

Modifica il proprietario di un oggetto del database corrente.

Importante

Questa stored procedure funziona solo con gli oggetti disponibili in Microsoft SQL Server 2000 (8.x). 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. Usare invece ALTER SCHEMA o ALTER AUTHORIZATION . sp_changeobjectowner modifica sia lo schema che il proprietario. Per mantenere la compatibilità con le versioni precedenti di SQL Server, questa stored procedure modificherà solo i proprietari degli oggetti quando sia il proprietario corrente che i nuovi schemi proprietari hanno lo stesso nome dei nomi utente del database.

Importante

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

Convenzioni di sintassi Transact-SQL

Sintassi

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

Argomenti

[ @objname = ] 'object' Nome di una tabella, di una vista, di una funzione definita dall'utente o di una stored procedure esistente nel database corrente. l'oggetto è un nvarchar(776), senza impostazione predefinita. l'oggetto può essere qualificato con il proprietario dell'oggetto esistente, nel formato existing_owner.se lo schema e il relativo proprietario hanno lo stesso nome.

[ @newowner = ] 'owner_ ' Nome dell'account di sicurezza che sarà il nuovo proprietario dell'oggetto. owner è sysname, senza impostazione predefinita. il proprietario deve essere un utente di database, un ruolo del 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 del codice restituito

0 (operazione completata) o 1 (operazione non riuscita)

Osservazioni:

sp_changeobjectowner rimuove tutte le autorizzazioni esistenti dall'oggetto . Sarà necessario riapplicare le autorizzazioni che si desidera mantenere dopo l'esecuzione di sp_changeobjectowner. È pertanto consigliabile creare script per le autorizzazioni esistenti prima di eseguire sp_changeobjectowner. 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 sia al ruolo predefinito del database db_ddladmin che al ruolo predefinito del database db_securityadmin nonché all'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  

Vedi anche

ALTER SCHEMA (Transact-SQL)
ALTER DATABASE (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
sp_changedbowner (Transact-SQL)
Stored procedure di sistema (Transact-SQL)