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

Oracle Discussion :

Comment savoir si un compte est authentifié EXTERNALLY


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut Comment savoir si un compte est authentifié EXTERNALLY
    Bonjour à tous

    Je bute sur une question que je pensais toute simple :
    comment savoir si un compte Oracle (9i) a été déclaré comme "IDENTIFIED EXTERNALLY" ?

    Le champ EXTERNAL_NAME de DBA_USERS n'est pas renseigné dans ce cas (il me semble qu'il ne l'est que pour les comptes IDENTIFIED GLOBALLY, c'est à dire pour l'authentification par un annuaire LDAP)

    Le champ PASSWORD ne contient pas non plus systématiquement EXTERNAL.

    Et si OS_AUTHENT_PREFIX est vide (''), on n'a pas de distinction non plus par le USERNAME.

    Alors comment savoir sans ambiguïté quels comptes sont authentifiés par l'OS ?

    Celui qui saura répondre gagne ma considération et un carambar virtuel !

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    On dirait bien que je ne suis pas le seul que ça laisse perplexe, si j'en juge par les nombreuses réponses...

  3. #3
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    j'ai eu beau cherché je suis aussi arrivé à une impasse

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select username from dba_users where password='EXTERNAL';

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut Re: Comment savoir si un compte est authentifié EXTERNALLY
    Citation Envoyé par Pomalaix
    ne contient pas non plus systématiquement EXTERNAL.
    pourquoi pas?

  6. #6
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut Re: Comment savoir si un compte est authentifié EXTERNALLY
    Citation Envoyé par laurentschneider
    Citation Envoyé par Pomalaix
    ne contient pas non plus systématiquement EXTERNAL.
    pourquoi pas?
    Le pourquoi, je l'ignore !
    Mais je constate le fait dans une base d'un client.
    Sur un échantillon de 10 comptes commençant par OPS$ (donc a priori authentifiés EXTERNALLY), 2 ont "EXTERNAL" dans la colonne PASSWORD, les autres ont une valeur cryptée classique du type 906D6BB9CBBC70F8, bien entendu différente d'un compte à l'autre.

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Je crois que c'est parce qu'un utilisateur "externe" peut quand même changer son mot de passe Oracle ... même s'il ne l'utilise pas

  8. #8
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    En effet, le préfixe ne veut rien dire puisqu'un compte identifié par l'OS peut devenir un compte "classique" si on change le password

  9. #9
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    c'est aussi mon avis, si un utiliseur a une valeur cryptée, alors il ne peut pas se logger "externe".

  10. #10
    Membre Expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Par défaut
    Et la table system : sys.user$
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select name,password from sys.user$;
    SQL> desc sys.user$
    Name Null? Type
    ----------------------------------------- -------- ----------------
    USER# NOT NULL NUMBER
    NAME NOT NULL VARCHAR2(30)
    TYPE# NOT NULL NUMBER
    PASSWORD VARCHAR2(30)
    DATATS# NOT NULL NUMBER
    TEMPTS# NOT NULL NUMBER
    CTIME NOT NULL DATE
    PTIME DATE
    EXPTIME DATE
    LTIME DATE
    RESOURCE$ NOT NULL NUMBER
    AUDIT$ VARCHAR2(38)
    DEFROLE NOT NULL NUMBER
    DEFGRP# NUMBER
    DEFGRP_SEQ# NUMBER
    ASTATUS NOT NULL NUMBER
    LCOUNT NOT NULL NUMBER
    DEFSCHCLASS VARCHAR2(30)
    EXT_USERNAME VARCHAR2(4000)
    SPARE1 NUMBER
    SPARE2 NUMBER
    SPARE3 NUMBER
    SPARE4 VARCHAR2(1000)
    SPARE5 VARCHAR2(1000)
    SPARE6 DATE

  11. #11
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par bouyao
    Et la table system : sys.user$
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select name,password from sys.user$;
    quelle différence ? dba_users est une vue sur sys.user$

  12. #12
    Membre Expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Par défaut
    La difference c'est ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SQL> select count(*) from dba_users;
     
      COUNT(*)
    ----------
            20
     
    SQL> select count(*) from sys.user$;
     
      COUNT(*)
    ----------
            54
    Il y'a des utilisateurs qu'on le vois dans sys.user$ et non pas dans dba_users

  13. #13
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par bouyao
    Et la table system : sys.user$
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select name,password from sys.user$;
    SQL> desc sys.user$
    Name Null? Type
    ----------------------------------------- -------- ----------------
    USER# NOT NULL NUMBER
    NAME NOT NULL VARCHAR2(30)
    TYPE# NOT NULL NUMBER
    PASSWORD VARCHAR2(30)
    DATATS# NOT NULL NUMBER
    TEMPTS# NOT NULL NUMBER
    CTIME NOT NULL DATE
    PTIME DATE
    EXPTIME DATE
    LTIME DATE
    RESOURCE$ NOT NULL NUMBER
    AUDIT$ VARCHAR2(38)
    DEFROLE NOT NULL NUMBER
    DEFGRP# NUMBER
    DEFGRP_SEQ# NUMBER
    ASTATUS NOT NULL NUMBER
    LCOUNT NOT NULL NUMBER
    DEFSCHCLASS VARCHAR2(30)
    EXT_USERNAME VARCHAR2(4000)
    SPARE1 NUMBER
    SPARE2 NUMBER
    SPARE3 NUMBER
    SPARE4 VARCHAR2(1000)
    SPARE5 VARCHAR2(1000)
    SPARE6 DATE
    ext_username? cela ne concerne pas les utilisateurs externes mais les utilisateurs "globaux"

    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
     
    SQL> create user u identified externally;
     
    User created.
     
    SQL> create user g identified globally as 'GUGUS';
     
    User created.
     
    SQL> select userNAME,EXTernal_NAME from dba_users where username in ('G','U');
     
    USERNAME                       EXTERNAL_NAME
    ------------------------------ --------------------
    U
    G                              GUGUS

  14. #14
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par bouyao
    La difference c'est ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SQL> select count(*) from dba_users;
     
      COUNT(*)
    ----------
            20
     
    SQL> select count(*) from sys.user$;
     
      COUNT(*)
    ----------
            54
    Il y'a des utilisateurs qu'on le vois dans sys.user$ et non pas dans dba_users

    évidemment, dans user$ il y a les roles et PUBLIC

  15. #15
    Membre Expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Par défaut
    Oui Laurent, dans user$ il faut tenir compte du type#=1.

  16. #16
    Membre Expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Par défaut
    Une question.
    Ca sert à quoit de changer le mot de passe si l'utilisateur est identifié en externe (puisque il n a pas besoin de mot de passe Oracle).
    comme je n'ai pas testé : peut être en changeant le mot de passe, l'utilisateur ne sera plus identifié en externe (puisque la colonne password de la vue ne contient plus EXTERNAL)..

  17. #17
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par bouyao
    Une question.
    Ca sert à quoit de changer le mot de passe si l'utilisateur est identifié en externe (puisque il n a pas besoin de mot de passe Oracle).
    comme je n'ai pas testé : peut être en changeant le mot de passe, l'utilisateur ne sera plus identifié en externe (puisque la colonne password de la vue ne contient plus EXTERNAL)..
    changement de politique par exemple... ça t'évite de dropper le shéma

  18. #18
    Membre Expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Par défaut
    Donc, on ne peut pas savoir si un utilisateur à été crée par identified externally si son mot de passe à été modifié. Oracle ne garde pas les traces de toutes les modifications effectués sur le mot de passe d'un utilisateur.

  19. #19
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Bon, je retiens donc que dès qu'on modifie le mot de passe, on n'est plus authentifié par l'OS.

    Au final, il faut donc bien rechercher les comptes ayant comme mot de passe "EXTERNAL".

    Merci pour vos réponses !

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 14/09/2006, 17h04
  2. Comment savoir si un Shell est terminé ?
    Par Mr Capone dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 21/02/2005, 17h05
  3. [Access] Comment savoir qu'un champs est vide ?
    Par Oberown dans le forum ASP
    Réponses: 9
    Dernier message: 25/10/2004, 10h47
  4. Unix - Comment savoir si un fichier est ouvert
    Par freddyboy dans le forum C
    Réponses: 7
    Dernier message: 06/10/2004, 15h53
  5. Comment savoir qu'une fonction est standard ?
    Par D[r]eadLock dans le forum C
    Réponses: 5
    Dernier message: 24/03/2003, 14h42

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