web-dev-qa-db-fra.com

Comment supprimer un utilisateur SQL Server avec le privilège de propriétaire db

J'ai besoin de supprimer un utilisateur avec le schéma dbowner d'une base de données SQL Server. Je ne peux pas le laisser tomber car je reçois ce message d'erreur

Échec de la suppression pour le "service réseau" de l'utilisateur. (Microsoft.SqlServer.Smo)

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é. (Microsoft SQL Server, erreur: 15138)

Lorsque j'essaie de décocher le schéma appartenant à cet utilisateur pour supprimer le propriétaire de la base de données, cela ne fait rien. Ma question est de savoir comment supprimer cet utilisateur ou modifier son nom de "service réseau" en "NT AUTHORITY\NETWORK SERVICE"

18
Sofia Khwaja

Ajoutez d'abord un autre propriétaire.

Le lien d'origine est descendu - toujours disponible ici: https://web.archive.org/web/20160406021232/www.itorian.com/2012/12/the-database-principal-owns-schema-in. html

13
Kevin M

J'ai eu le même problème, j'ai exécuté deux scripts puis mon problème est résolu.

essaye ça:

Dans cette requête, vous pouvez obtenir le schéma utilisateur comme résultat pour la base de données AdventureWorks

USE AdventureWorks;
SELECT s.name
FROM sys.schemas s
WHERE s.principal_id = USER_ID('your username');

après avoir pris le nom du schéma, vous pouvez modifier l'autorisation sur le schéma comme ceci:

ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo;

dans cette requête db_owner nom de schéma obtenu à partir de la première requête.

enfin, vous pouvez supprimer l'utilisateur sans erreur.

ma source: SQL SERVER - Correction: erreur: 15138

18
Hasan Fathi

J'ai le même problème, je ne peux pas supprimer l'utilisateur

foo

car il dit:

enter image description here

Je dois donc aller dans Sécurité -> Schémas et rechercher dbo, puis cliquer avec le bouton droit et choisir Propriétés:

enter image description here

Puis changez

foo

à

dbo

puis après cela, je peux maintenant supprimer l'utilisateur que je veux supprimer.

enter image description here

3
Willy David Jr

Mon problème a également été résolu par la solution ci-dessus:

SELECT s.name
FROM sys.schemas s
WHERE s.principal_id = USER_ID('your username');

ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo;
0
mary