Partage via


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 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.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_changeobjectowner
    [ @objname = ] N'objname'
    , [ @newowner = ] N'newowner'
[ ; ]

Arguments

[ @objname = ] N’objname'

@objname est nvarchar(776), sans valeur par défaut.

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. @objname est un nvarchar(776), sans valeur par défaut. @objname pouvez être qualifié avec le propriétaire de l’objet existant, sous la forme <existing_owner>.<object_name> si le schéma et son propriétaire ont le même nom.

[ @newowner = ] N’newowner'

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

Valeurs des codes de retour

0 (réussite) or 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 sp_changeobjectowner. Par conséquent, nous vous recommandons de générer un script sur les autorisations existantes avant d’exécuter sp_changeobjectowner. Une fois la propriété de l’objet modifiée, vous pouvez utiliser le script pour 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’à CONTROL l’autorisation 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