sp_changeobjectowner (Transact-SQL)

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

Important

Cette procédure stockée ne fonctionne qu'avec les objets disponibles dans Microsoft SQL Server 2000. Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft 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 plutôt ALTER SCHEMA ou ALTER AUTHORIZATION. sp_changeobjectowner modifie à la fois le schéma et le propriétaire. Pour maintenir la compatibilité avec les versions antérieures de SQL Server, cette procédure stockée modifie les propriétaires d'objet uniquement si les schémas, dont les noms sont identiques aux noms d'utilisateur de base de données, appartiennent à la fois au propriétaire actuel et au nouveau propriétaire.

Important

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

Icône Lien de rubriqueConventions de syntaxe de Transact-SQL

Syntaxe

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

Arguments

  • [ @objname = ] 'object'
    Nom d'une table, d'une vue, d'une fonction définie par l'utilisateur ou d'une procédure stockée dans la base de données actuelle. object est de type nvarchar(776) et n'a pas de valeur par défaut. object peut être qualifié avec le propriétaire de l'objet existant, sous la forme existing_owner**.**object 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. owner est de type sysname et n'a pas de valeur par défaut. owner doit être un utilisateur de base de données, un serveur de rôle, une connexion Microsoft Windows ou un groupe Windows valide avec un accès à la base de données actuelle. 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 d'entité de sécurité de base de données correspondante.

Valeurs des codes de retour

0 (succès) ou 1 (échec)

Notes

sp_changeobjectowner supprime toutes les autorisations existantes de l'objet. Vous devez réappliquer toutes les autorisations que vous voulez conserver après l'exécution de sp_changeobjectowner. Par conséquent, nous vous recommandons de générer le script des 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 plus d'informations sur les scripts de base de données, consultez Documentation et écriture de scripts pour les bases de données.

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 aux rôles de base de données fixes db_ddladmin et db_securityadmin ainsi que l'autorisation CONTROL sur cet objet.

Exemple

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

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