L'entité de sécurité de la base de données possède schéma dans la base de données et ne peut être supprimée.

  

Description du problème : Lorsque vous essayez de supprimer un utilisateur, vous obtenez le message :

Erreur: 15138 L'entité de sécurité de la base de données possède schéma dans la base de données et ne peut être supprimée.

Cause: Ce message apparait quand vous essayez de supprimer un utilisateur qui possède un schéma. Avant de supprimer un utilisateur, vous devez trouver le schéma qui lui est assigné, puis transférer l'appartenance de ce schéma à un autre utilisateur ou supprimer ce schéma.

Résolution : Pour résoudre ce problème vous avez deux possibilités.

Par script: Vous pouvez découvrir quelles schémas sont affectés à ce utilisateur avec la requête ci-dessous :

SELECT name FROM  sys.schemas WHERE principal_id = USER_ID('myUser')

Ensuite, utiliser le nom trouvé avec la précédente requête pour changer le propriétaire du schéma. Supprimer l'utilisateur.
   
ALTER AUTHORIZATION ON SCHEMA::SchemaName TO dbo
GO
DROP USER myUser

Avec Management Studio:

- Explorateur d'Objet  >> Etendre  [databasename] >> Securité.
- Cliquer sur Schémas.
- Dans la fenêtre résumé, rechercher quel schéma  appartient à cette utilisateur et changer le propriétaire ou supprimer ce schéma.
- Si l'utilisateur possède des schémas. Je vous propose de changer le propriétaire par  ‘dbo’.
- Supprimer l'utilisateur.

Plus d'information sur les schémas dans le BOL:
https://msdn2.microsoft.com/fr-fr/library/ms190387.aspx

 

Michel Degremont | Premier Field Engineer - SQL Server Core Engineer |