web-dev-qa-db-fra.com

Comment transférer la propriété du schéma dbo dans SQL Server 2012

J'ai accidentellement donné à un utilisateur la propriété du schéma db_owner (en utilisant la case à cocher dans l'interface utilisateur ci-dessous) et maintenant je ne peux pas:

  1. Transférer la propriété à un autre utilisateur
  2. Supprimez l'utilisateur de la base de données (bien que je puisse supprimer la connexion dans SQL Server)

J'ai essayé Le principal de la base de données possède un schéma dans la base de données et ne peut pas être supprimé.

ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo

Et bien qu'il se soit terminé avec succès, l'utilisateur a toujours la propriété, et il est grisé, donc je ne peux pas non plus le faire dans l'interface utilisateur.

enter image description here

Trouvé une solution:

En plus de réponse d'Arron , j'ai réalisé que j'allais exécuter la commande ci-dessus dans une mauvaise base de données (facepalm!). Une fois la base de données corrigée, le SQL ci-dessus et la réponse ci-dessous ont fonctionné.

15
Preet Sangha

Une approche légèrement différente serait de rendre le schéma au propriétaire/schéma d'origine, au lieu de dbo:

ALTER AUTHORIZATION ON SCHEMA::db_owner TO db_owner;
22
Aaron Bertrand