sp_changeobjectowner (Transact-SQL)
Modifica il proprietario di un oggetto del database corrente.
Importante |
---|
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. |
Importante |
---|
A questa stored procedure è stato aggiunto un nuovo requisito di autorizzazione. |
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 AUTHORIZATION (Transact-SQL)