Avez-vous déjà rencontré le message d’erreur “Le principal de base de données possède un schéma dans la base de données et ne peut pas être supprimé” lors de la tentative de suppression d’une connexion d’une base de données SQL Server ? Si c’est le cas, vous n’êtes pas seul. Cette erreur peut être frustrante et peut vous empêcher de terminer votre tâche. Mais ne vous inquiétez pas, il existe une solution de contournement rapide pour résoudre ce problème.
La raison de cette erreur est assez claire à partir du message d’erreur lui-même. Il existe des schémas associés à l’utilisateur que vous essayez de supprimer, et ces schémas doivent être transférés à un autre utilisateur avant que la suppression puisse être effectuée.
Supposons que vous essayez de supprimer un utilisateur nommé ‘pinaladmin’ de la base de données ‘AdventureWorks’. Pour résoudre cette erreur, suivez ces étapes :
- Tout d’abord, exécutez le script suivant dans le contexte de la base de données à laquelle l’utilisateur appartient :
USE AdventureWorks;
SELECT s.name FROM sys.schemas s WHERE s.principal_id = USER_ID('pinaladmin');
Ce script renverra les noms des schémas associés à l’utilisateur. Dans notre cas, supposons que nous obtenions deux noms de schéma en résultat.
- Ensuite, exécutez le script suivant pour transférer la propriété des schémas à l’utilisateur ‘dbo’. Dans notre cas, nous l’exécuterons deux fois car nous avons deux schémas :
ALTER AUTHORIZATION ON SCHEMA::db_denydatareader TO dbo;
ALTER AUTHORIZATION ON SCHEMA::db_denydatawriter TO dbo;
Après avoir exécuté ces scripts, vous devriez pouvoir supprimer le propriétaire de la base de données sans rencontrer d’erreurs.
Voici un script générique que vous pouvez utiliser pour résoudre l’erreur :
SELECT s.name FROM sys.schemas s WHERE s.principal_id = USER_ID('YourUserID');
Remplacez ‘YourUserID’ par l’ID utilisateur réel, puis utilisez le nom de schéma résultant dans le script suivant :
ALTER AUTHORIZATION ON SCHEMA::YourSchemaName TO dbo;
En suivant ces étapes, vous pouvez résoudre avec succès l’erreur 15138 et supprimer la connexion de la base de données SQL Server.
N’oubliez pas qu’il est important de transférer la propriété des schémas à un autre utilisateur avant de supprimer la connexion afin d’éviter tout problème potentiel avec la base de données.
J’espère que cela vous aidera ! Si vous avez d’autres questions ou besoin d’aide, n’hésitez pas à me contacter.