sp_changeobjectowner (Transact-SQL)

S’applique à :SQL Server

Modifie le propriétaire d'un objet dans la base de données active.

Important

Cette procédure stockée fonctionne uniquement avec les objets disponibles dans Microsoft SQL Server 2000 (8.x). Cette fonctionnalité sera supprimée dans une version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Utilisez à la place ALTER SCHEMA ou ALTER AUTHORIZATION . sp_changeobjectowner modifie le schéma et le propriétaire. Pour préserver la compatibilité avec les versions antérieures de SQL Server, cette procédure stockée change uniquement les propriétaires d’objets lorsque le propriétaire actuel et le nouveau propriétaire possèdent le même nom que leurs noms d’utilisateur de base de données.

Important

Une nouvelle autorisation a été ajoutée à cette procédure stockée.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

[ @objname = ] 'object' Nom d’une table, d’une vue existante, d’une fonction définie par l’utilisateur ou d’une procédure stockée dans la base de données active. l’objet est un nvarchar(776), sans valeur par défaut. l’objet peut être qualifié avec le propriétaire de l’objet existant, sous la forme existing_owner. si le schéma et son propriétaire ont le même nom.

[ @newowner = ] 'owner_ ' Nom du compte de sécurité qui sera le nouveau propriétaire de l’objet. propriétaire est sysname, sans valeur par défaut. le propriétaire doit être un utilisateur de base de données valide, un rôle serveur, une connexion Microsoft Windows ou un groupe Windows ayant accès à la base de données active. Un utilisateur de base de données est créé si le nouveau propriétaire est un utilisateur Windows ou un groupe Windows pour lequel il n'existe pas de principal de base de données correspondant.

Codet de retour

0 (réussite) ou 1 (échec)

Notes

sp_changeobjectowner supprime toutes les autorisations existantes de l’objet. Vous devrez réappliquer toutes les autorisations que vous souhaitez conserver après l’exécution de sp_changeobjectowner. Par conséquent, nous vous recommandons de générer un script sur les autorisations existantes avant d’exécuter sp_changeobjectowner. Après avoir modifié la propriété de l'objet, vous pouvez utiliser le script afin de réappliquer les autorisations. Vous devez modifier le propriétaire de l'objet dans le script des autorisations avant l'exécution.

Pour modifier le propriétaire d'un élément sécurisable, utilisez ALTER AUTHORIZATION. Pour modifier un schéma, utilisez ALTER SCHEMA.

Autorisations

Nécessite l’appartenance au rôle de base de données fixe db_owner ou l’appartenance au rôle de base de données fixe db_ddladmin et au rôle de base de données fixe db_securityadmin , ainsi qu’à l’autorisation CONTROL sur l’objet.

Exemples

L’exemple suivant modifie le propriétaire de la authors table en Corporate\GeorgeW.

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

Voir aussi

ALTER SCHEMA (Transact-SQL)
ALTER DATABASE (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
sp_changedbowner (Transact-SQL)
Procédures stockées système (Transact-SQL)