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 :

[sql2008] Perdre ses accès


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Baquardie
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2003
    Messages : 267
    Par défaut [sql2008] Perdre ses accès
    Je suis vraiment perdue avec ce cas.

    Je suis en train de faire du ménage sur notre serveur de développement qui est 2008 SP2 (10.0.4000). J'étais dans la section login lorsque je vois quelques nom d'usager qui ont des accès direct. Or, nous préférons passer par des groupes AD.

    Je décide donc de les effacer, en commençant par mon accès personnel.

    Après m'avoir enlevé, je fais un test de connection et... depuis je ne suis plus capable de me connecter au serveur sql !

    Mais comprenez moi bien... je fais partie d'au moins 5 groupe AD qui ont des accès sur le serveur, dont deux qui font partie du rôle sysadmin. C'est à n'y rien comprendre.

    Voici l'erreur qui se trouve dans le error log :

    Error: 18456, Severity: 14, State: 40.

    Login failed for user 'INDLAS\mon_login'. Reason: Failed to open the database specified in the login properties. [CLIENT: xxx.xxx.xxx.xxx]
    Puisque mon_login n'a plus d'accès directement, clairement cela passe par des groupes AD. Mais comment savoir lequel est utilisé pour se connecter à SQL ?

    J'ai utilisé une trace, et le problème semble provenir de la base de données master. ?!? C'est trop étrange, étant sysadmin je devrais avoir les droits de my connecter....

    Si vous avez une piste de recherche pour une solution ce serait sympa !

    Merci,

    Baq'

  2. #2
    Expert confirmé
    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 : 46
    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
    Par défaut
    Es-tu capable de te connecter avec un autre login en tant que sysadmin sur le serveur ?

    Visiblement tu fais parti d'un groupe dont la base de données par défaut n'existe plus ou à été renommé. Il faudrait que tu regardes pour chacun des groupes concernés la base de données par défaut et changer celui qui te pose souci.

    ++

  3. #3
    Membre éclairé Avatar de Baquardie
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2003
    Messages : 267
    Par défaut
    Bonjour,

    Merci pour la réponse.

    J'ai exécuté cette requête afin de valider votre piste de solution.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select a.name, dbname, denylogin, hasaccess, sysadmin, isntname, isntgroup, isntuser
    from sys.syslogins a
    	left join sys.sysdatabases b on (a.dbname = b.name)
    Et tous les logins ont une correspondance au niveau bd. De plus, le seul login qui a le flag "denylogin" à 1 n'est pas un groupe mais un Login SQL.

    Je viens de re-tester, et après avoir reçu le message d'erreur, je réussi quand même à me connecter sur le serveur, mais je ne vois pas le SQL Server Agent et il y a plein d'endroit que l'erreur revient (exemple, si je tente de créer un linked server).



    Baq'

  4. #4
    Membre éclairé Avatar de Baquardie
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2003
    Messages : 267
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Es-tu capable de te connecter avec un autre login en tant que sysadmin sur le serveur ?
    J'oubliais de répondre à la question. Oui je me connecte avec le compte sa...

  5. #5
    Expert confirmé
    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 : 46
    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
    Par défaut
    Ok.

    Personnellement je commencerai par rechercher quels groupes me concernent avec le script suivant par exemple :

    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
    29
    30
    31
    32
    33
    34
    DECLARE @group_name SYSNAME;
     
    DECLARE @t_group TABLE
    (
    account_name SYSNAME,
    [type] VARCHAR(50),
    privilege VARCHAR(50),
    [mapped login name] SYSNAME,
    [permission path] SYSNAME
    )
     
    DECLARE C CURSOR FOR 
    SELECT name
    FROM sys.server_principals
    WHERE type_desc = 'WINDOWS_GROUP'
    AND principal_id > 4
      AND name NOT LIKE 'NT SERVICE%'
     
    OPEN C;
    FETCH NEXT FROM C INTO @group_name;
     
    WHILE @@FETCH_STATUS = 0
    BEGIN
    INSERT @t_group
    EXEC('EXEC xp_logininfo ''' + @group_name + ''', ''members''')
     
    FETCH NEXT FROM C INTO @group_name;
    END
     
    CLOSE C;
    DEALLOCATE C;
     
    SELECT * FROM @t_group
    WHERE account_name = 'INDLAS\mon_login';
    Ensuite je regarderai pour ces groupes la base de données par défaut associée ainsi que leurs privilèges. Cela peut être l'occasion de faire un peu le ménage (ou non en fonction de ton contexte )

    ++

  6. #6
    Membre éclairé Avatar de Baquardie
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2003
    Messages : 267
    Par défaut
    Bonjour,

    Merci pour le script. J'ai du le modifier un peu, et ajouter des crochets autour de la variable @group_name :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXEC('EXEC xp_logininfo ''[' + @group_name + ']'', ''members''')
    parce que sinon je recevais le message d'erreur suivant :

    Msg 15404, Level 16, State 4, Procedure xp_logininfo, Line 42
    Could not obtain information about Windows NT group/user 'INDLAS\sql_admins', error code 0x5.
    Enfin, lorsque j'exécute le script il ne me retourne rien.

  7. #7
    Expert confirmé
    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 : 46
    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
    Par défaut
    Ok donc pour vérifier simplement est-ce qu'en enlevant le prédicat de la dernière requête tu as quelque chose ? Dans le cas d'une réponse positive vérifie si dans un des groupes retournés ton login concerné est présent.

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 14
    Dernier message: 30/10/2012, 16h15
  2. [VBA-E] Suppression du contenu d'une colonne sans perdre ses formules
    Par mardona dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/04/2007, 09h08
  3. Réponses: 9
    Dernier message: 13/09/2006, 14h19
  4. TweakUI fait perdre ses couleurs a XP.
    Par Bejaia-In dans le forum Windows XP
    Réponses: 3
    Dernier message: 29/05/2006, 18h57

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