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 Oracle Discussion :

Interdire la connexion / as sysdba en local


Sujet :

Administration Oracle

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    461
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 461
    Points : 283
    Points
    283
    Par défaut Interdire la connexion / as sysdba en local
    Bonsoir,
    Je souhaite savoir s'il est possible d'interdire les connections locales en
    "/AS SYSDBA". Je possède un fichier "orapw<ORACLE_SID>" pour me connecter en SYSDBA au travers du réseau ainsi que le paramètre remote_login_passwordfile à EXCLUSIVE.
    Merci pour votre aide.

  2. #2
    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
    Points : 3 597
    Points
    3 597
    Par défaut
    Pour interdire les connections locales avec les droits SYSDBA, il faut
    interdire la connection:
    • pour Unix des comptes qui appartiennent au groupe "dba"
    • pour Windows des comptes qui appartiennent au groupe ORA_DBA.

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Points : 40
    Points
    40
    Par défaut réponse
    Citation Envoyé par pifor Voir le message
    Pour interdire les connections locales avec les droits SYSDBA, il faut
    interdire la connection:
    • pour Unix des comptes qui appartiennent au groupe "dba"
    • pour Windows des comptes qui appartiennent au groupe ORA_DBA.
    bonjour :
    En fait c'est simple à faire, tu n as que modifier le fichier SQLNET.ORA, em commentant la ligne "SQLNET.AUTHENTICATION_SERVICES= (NTS)" 'en ajoutant un # en début de la ligne .le fichier SQLNET.ORA situé dans $ORACLE_HOME/network/admin.

    merci de me confirmer.

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Non, ça c'est pour interdire SYSDBA via SQL*Net, en local il faut, comme le dit Pifor, sortir le user du groupe dba ou ORA_DBA.

  5. #5
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    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 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Pour effectuer certaines opérations, telles que le démarrage d'une base, il faut se connecter avec un privilège particulier : SYSDBA.
    Mais comment savoir qui possède le privilège SYSDBA alors que la base est fermée ? Pour cela, il y a deux possibilités principales, qui peuvent éventuellement être activées simultanément : la validation par le système d'exploitation, et la validation par un fichier de mots de passe, externe à la base.

    Dans le cadre de la validation par l'OS, tous les membres du groupe OS "ORA_DBA" (sous Windows) et "DBA" (sous Unix) sont considérés comme titulaires du privilège SYSDBA.
    On pourra alors se connecter sans préciser le mot de passe : CONNECT / AS SYSDBA.

    Dans le cadre de la validation par fichier de mots de passe, il faudra impérativement préciser le mot de passe : CONNECT SYS/mot_de_passe AS SYSDBA.

    La question est donc "comment désactiver la validation par l'OS ? "
    Il suffit pour cela, dans le fichier SQLNET.ORA, de mettre
    SQLNET.AUTHENTICATION_SERVICES=NONE
    Les groupes ORA_DBA ou DBA seront alors ignorés, quel que soit leur contenu, et toute connexion SYSDBA sera validée par le fichier de mots de passe, qui devra bien entendu exister.

    Ceci fonctionne pour les différents OS, et s'applique tout à fait aux connexions locales (directement sur le serveur Oracle).

    Si au contraire on veut activer la validation OS, il y a une petite variante suivant l'OS concerné.
    Pour Windows, on devra impérativement avoir SQLNET.AUTHENTICATION_SERVICES=NTS (NTS signifiant quelque chose comme Windows NT Security)
    Pour Unix, il faudra juste s'assurer qu'on n'ait pas NONE comme valeur.

    J'espère que ceci jettera un peu de lumière sur les connexions SYSDBA.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  6. #6
    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
    Points : 3 597
    Points
    3 597
    Par défaut
    Citation Envoyé par smaildba Voir le message
    bonjour :
    En fait c'est simple à faire, tu n as que modifier le fichier SQLNET.ORA, em commentant la ligne "SQLNET.AUTHENTICATION_SERVICES= (NTS)" 'en ajoutant un # en début de la ligne .le fichier SQLNET.ORA situé dans $ORACLE_HOME/network/admin.

    merci de me confirmer.

    Je confirme qu'effectivement sous Windows, c'est bien le cas pour une connexion locale SYSDBA:
    Avec SQLNET.AUTHENTICATION_SERVICES= (NTS) dans sqlnet.ora,
    la commande "sqlplus / as sysdba" fonctionne si le compte Windows appartient à ORA_DBA.
    S'il n'y a pas SQLNET.AUTHENTICATION_SERVICES= (NTS) dans le sqlnet.ora,
    la commande "sqlplus / as sysdba" ne fonctionne pas même si le compte Windows appartient à ORA_DBA:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >sqlplus / as sysdba
     
    SQL*Plus: Release 10.2.0.1.0 - Production on Ven. Déc. 12 13:20:42 2008
     
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
     
    ERROR:
    ORA-01031: insufficient privileges
    Par contre, ceci est spécifique à Windows et ne concerne pas Unix.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    461
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 461
    Points : 283
    Points
    283
    Par défaut
    Merci à tous pour votre aide. Ca marche nickel.

  8. #8
    En attente de confirmation mail
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Pomalaix Voir le message
    Pour Unix, il faudra juste s'assurer qu'on n'ait pas NONE comme valeur.
    Je ne suis pas d’accord à 100% sur ce point. Sur Unix, j’ai testé différentes valeur du SQLNET.AUTHENTICATION_SERVICES.

    SQLNET.AUTHENTICATION_SERVICES=NONE => authentification par OS refusée
    SQLNET.AUTHENTICATION_SERVICES=NTS => authentification par OS refusée
    SQLNET.AUTHENTICATION_SERVICES=ALL => authentification par OS ok
    SQLNET.AUTHENTICATION_SERVICES en commentaire => authentification par OS ok

    Donc j’en conclu que pour activer l’authentification par OS sur Unix il ne suffit pas de mettre autre chose que NONE, mais plutôt autre chose que NONE et NTS au moins…

    Ou alors j'ai loupé quelquechose ?

  9. #9
    Membre confirmé Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Points : 603
    Points
    603
    Par défaut
    J'ajouterais que modifier SQLNET.ORA pour limiter la connection SYSDBA en locale et limite... Si tu as acces au user du group DBA, alors tu es souvent a meme de modifier correctement ce fichier pour t'autoriser la connection en tant que SYSDBA...

    Nicolas.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/11/2014, 11h07
  2. Partage de connexion sur un réseau local
    Par zoom61 dans le forum Administration
    Réponses: 1
    Dernier message: 27/02/2006, 10h54
  3. connexion as sysdba
    Par Isabella dans le forum Oracle
    Réponses: 2
    Dernier message: 22/02/2006, 08h19
  4. Réponses: 5
    Dernier message: 07/04/2005, 14h12
  5. Connexion SYSDBA en local sous XP
    Par marsup54 dans le forum Administration
    Réponses: 32
    Dernier message: 02/06/2004, 00h27

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