virer un user dans une base SQLserver - SQL/NoSQL - Programmation
Marsh Posté le 19-12-2002 à 17:21:49
zetoune a écrit : j'essaie d'enlever un user d'une base de donnée. |
bah d'autres objets doivent lui appartenir ?
Marsh Posté le 20-12-2002 à 10:16:40
Il lui reste peut-être des packages DTS ?
Sinon, tu peux générer un script de chacune des bases (avec
toutes les options), puis rechercher le nom de cet utilisateur dans les scripts générés.
Sinon on doit pouvoir s'en sortir avec un script SQL qui va lire les tables systèmes (j'ai pas le temps de faire ça, désolé).
Marsh Posté le 20-12-2002 à 10:56:36
Non non.
Ce message apparait quand tu tente de supprimer le user qui a servi a créer des objets (tables, vues, procédures).
Il n'est normalement pas possible de faire cette suppression.
Pourquoi est tu dans un tel cas ?
C'est suite à une resto de DB sur un autre serveur SQL ?
Sinon, une des solutions consiste à utiliser une des procédure stockée système pour virer le user dans la table système "sysusers".
Je peux te donner la syntaxe des commande, mais dis moi d'abord dans quel cas tu es, on risque de rendre la DB inutilisable.
Marsh Posté le 20-12-2002 à 14:58:50
ouais... en fait c'est exactement ca..
c'est une DB de production... et que je voulais a jour par rapport a la DB originale. J'ai donc fait un restore de la DB originale sur la Db de prod.. et voilà ... le message qui apparait..
Marsh Posté le 20-12-2002 à 17:21:10
Bon, alors :
Si tu te retrouve dans le cas d'un user déclaré sur ta DB restorée qui porte le même nom qu'un des user déclaré dans le conteneur "Sécurité" du SGBD mais dont le SID ne correspond pas. :
(Si c'est un autre cas, explique moi mieux ton pb)
Sous l'analyseur de requète (positionné sur ta DB) :
EXEC sp_change_users_login 'Report'
Là, tu auras comme résultat ton utilisateur dont le SID ne correspond pas à un compte de sécurité suivi du SID. Puis :
EXEC sp_change_users_login 'Update_One', 'NOM_UTILISATEUR','NOM_UTILISATEUR'
NOM_UTILISATEUR etant ton user unliké.
Mais attention, si tu n'es pas dans le cas que j'ai décrit en haut, N'ESSAYE PAS CE QUE JE VIENS DE TE DONNER !!!
[MODE J'Y SUIS POUR RIEN ON]
Je decline toute responsabilité dans le plantage de la base de prod
[MODE J'Y SUIS POUR RIEN OFF]
Marsh Posté le 20-12-2002 à 17:37:30
ouais... c'est bien ce cas la..
et ca marche .. MERCI... cool.
...
Marsh Posté le 19-12-2002 à 17:16:15
j'essaie d'enlever un user d'une base de donnée.
Mais il me dit "The selected user cannot be dropped because the user owns objects"
j'ai pourtant effacé le user.. dans "security" et j'ai décoché "db_owner"
comment je peux faire ?