IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

un problème de user orpheling


Sujet :

Administration SQL Server

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 291
    Points : 126
    Points
    126
    Par défaut un problème de user orpheling
    J’ai créer une base de donnée manuellement, mais lors de la création j’ai fait une erreur j’ai créer un user a la db sans le retaché dans dans le moteur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	CREATE USER [WdsUSer] WITHOUT LOGIN WITH DEFAULT_SCHEMA=[WdsUSer]
    Puis j’ai remarqué que j’avais oublié de le rajouté dans le moteur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE LOGIN [WdsUser] WITH PASSWORD=N'XXXXXXX', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
    J’ai constater une erreur classique d’un user orphelin.

    J’ai essayé d’appliqué

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sp_change_users_login 'Auto_Fix',  ‘WdsUSer’
    The number of orphaned users fixed by updating users was 0.
    The number of orphaned users fixed by adding new logins and then updating users was 0.


    Ca ne marche pas

    Alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sp_change_users_login  'Update_One', WdsUser, WdsUSer

    Msg 15291, Level 16, State 1, Procedure sp_change_users_login, Line 114
    Terminating this procedure. The User name 'WdsUser' is absent or invalid.

    Alors je vais voir dans les DMV

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select u.name from master..syslogins l right join 
        sysusers u on l.sid = u.sid 
        where l.sid is null and issqlrole <> 1 and isapprole <> 1   
        and (u.name <> 'INFORMATION_SCHEMA' and u.name <> 'guest'  
        and u.name <> 'system_function_schema')
    Je trouve bien mon user

    Et j’ai essayé d’exécuter les scripts

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    --Run this script under your Database context
    --by using the following statements
    USE	 cdbTopExEmea
    Go   
    --Variable to hold current UserName to process
    DECLARE @UserName nvarchar(255)
    --—Create Cursor for the orphan Users
    DECLARE OrphanUser_Cursor cursor for
    SELECT UserName = name
    FROM sysusers
    WHERE
    (issqluser = 1)
    AND (sid is not null and sid <> 0x0)
    AND (suser_sname(sid) is null)
    ORDER BY name
    OPEN OrphanUser_Cursor
    FETCH NEXT FROM OrphanUser_Cursor INTO @UserName
    WHILE (@@fetch_status = 0)
    BEGIN
    PRINT @UserName + ' user name being resynced'
    --Re-sync the currently selected orphan user
    EXEC sp_change_users_login 'Update_one', @UserName, @UserName
    --Get Next Orphan User
    FETCH NEXT FROM OrphanUser_Cursor INTO @UserName
    END
    --Clean up
    CLOSE OrphanUser_Cursor
    DEALLOCATE OrphanUser_Cursor


    Toujours le même message .


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg 15291, Level 16, State 1, Procedure sp_change_users_login, Line 114
    Terminating this procedure. The User name 'WdsUser' is absent or invalid.
    Merci de votre et de vos idées.

  2. #2
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par zoltix Voir le message
    J’ai créer une base de donnée manuellement, mais lors de la création j’ai fait une erreur j’ai créer un user a la db sans le retaché dans dans le moteur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	CREATE USER [WdsUSer] WITHOUT LOGIN WITH DEFAULT_SCHEMA=[WdsUSer]
    Là avec l'option WITHOUT , l'utilisateur [WdsUSer] n'est mappé sur aucun LOGIN !!!

    DEFAULT_SCHEMA=[WdsUSer] veut dire que l'utilisateur [WdsUSer] est rattaché au schéma [WdsUSer] . Est ce que ce schéma existe ?

    Si le schéma [WdsUSer] n'existe pas; tu peux le créer
    à l'aide de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE SCHEMA WdsUSer AUTHORIZATION WdsUSer ....
    Etienne ZINZINDOHOUE
    Billets-Articles

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 291
    Points : 126
    Points
    126
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE USER [WdsUSer] WITHOUT LOGIN WITH DEFAULT_SCHEMA=[WdsUSer]
    Je sais que c'est ça l'erreur et de plus je pensais supprimer le user et le recréer mais c'est compliqué car je travaille avec SP et Trigger impersonnate. Et sql server impose d'enlever toutes les procédures d'impersonnate qui ont une relation avec un Object pour qu'on puisse enlever cet user.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ALTER  proc [cdbprod].[qt_Select_PrimaryKeys] @user varchar(200), 									@.......
    WITH EXECUTE as 'WdsUser
    as 
    .........

    Mais c'est la question comment lier un user db et aux moteur si je l'ai crée avec un witout.....


    J'arrive a provoquer l'erreur maintenant ......


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE USER TEST_USER WITHOUT LOGIN WITH DEFAULT_SCHEMA=TEST_USER
    GO
     
    CREATE LOGIN TEST_USER WITH PASSWORD=N'__qsdfqsdfqsdfqsdf_', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
    GO
    EXEC sp_change_users_login 'Update_One', 'TEST_USER', 'TEST_USER';
     
    Go




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Msg 15291, Level 16, State 1, Procedure sp_change_users_login, Line 114
    Terminating this procedure. The User name 'TEST_USER' is absent or invalid.

  4. #4
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonsoir,

    Vous ne pouvez pas lier un utilisateur créé avec la clause WITHOUT LOGIN à un compte de connexion SQL Server.

    Cf BOL :

    sp_change_users_login cannot be used with a SQL Server login created from a Windows principal or with a user created by using CREATE USER WITHOUT LOGIN.

    ++

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 291
    Points : 126
    Points
    126
    Par défaut
    Zut ...... !!!!!!!!!!!! Grrrrrrrrr comme je travaille avec des imperonnate et que j'ai plus +- SP et qlq Trigger. Ca va me donner bcp de travail pour une stupide erreur.

    Merci

Discussions similaires

  1. Problème avec User.IsInRole
    Par frederix quest dans le forum ASP.NET
    Réponses: 6
    Dernier message: 16/11/2008, 17h36
  2. Problème avec user control
    Par 0365752 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 14/12/2007, 17h00
  3. Problème création user
    Par raskotub dans le forum Administration système
    Réponses: 6
    Dernier message: 13/04/2007, 13h30
  4. problème avec user Control
    Par shirya dans le forum ASP.NET
    Réponses: 4
    Dernier message: 14/03/2007, 15h02
  5. Problème gestion user
    Par RR instinct dans le forum Administration
    Réponses: 9
    Dernier message: 08/03/2007, 08h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo