FAQ OracleConsultez toutes les FAQ
Nombre d'auteurs : 17, nombre de questions : 139, dernière mise à jour : 30 mai 2016 Ajouter une question
Cette F.A.Q. a été réalisée à partir des questions fréquemment posées sur le forum Oracle de www.developpez.com et de l'expérience personnelle des auteurs. Elle pourra traiter de tout type de questions portant sur les technologies Oracle.
Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.
L'équipe Oracle de Developpez.
- Comment empecher un utilisateur de se connecter avec un outil spécifique ?
- Comment empêcher un utilisateur d'effectuer certaines opérations sous Sql*Plus ?
- Comment autoriser/interdire une connexion Net*8 ?
- Comment interdire le changement de mot de passe à un utilisateur ?
- Je suis administrateur et pourtant j'ai une erreur de privilèges insuffisants ?
- Comment me connecter en tant que SYS, cela me retourne une erreur ?
- Comment sécuriser la gestion des mots de passe ?
Via un trigger de type AFTER LOGON :
L'exemple suivant concerne l'outil Toad :
Code sql : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | create or replace trigger interdire_toad after logon on database declare v_sid sys.v_$session.sid%TYPE; v_isdba sys.v_$session.username%TYPE; v_program sys.v_$session.program%TYPE; begin execute immediate 'select distinct sid from sys.v_$mystat' into v_sid; execute immediate 'select program from sys.v_$session where sid = :b1' into v_program using v_sid; execute immediate 'select username from sys.v_$session where sid = :b1' into v_isdba using v_sid; if upper(v_program) like 'TOAD%' and v_isdba = 'USERNAME' then RAISE_APPLICATION_ERROR (-20001,'Connexion avec '||v_isdba||' sous TOAD interdite,contactez le DBA ',TRUE); end if; end; / |
- il n'a pas d'effet si l'utilisateur possède le privilège ADMINISTER DATABASE TRIGGER.
- il n'a pas d'effet si on renomme l'utilitaire, le contrôle se faisant via une comparaison entre le champ v_program et le nom du programme.
Comment désactiver - activer la sécurité :
Code sql : | Sélectionner tout |
1 2 3 | alter trigger interdire_toad disable ; alter trigger interdire_toad enable ; |
Il suffit d'effectuer une insertion dans la table product_user_profile :
Code sql : | Sélectionner tout |
1 2 3 | INSERT INTO product_user_profile (product, userid, attribute, char_value) VALUES ('SQL*Plus', 'SCOTT', 'CREATE', 'DISABLED'); COMMIT ; |
Code sql : | Sélectionner tout |
1 2 3 4 | set linesize 250 col CHAR_VALUE format a15 col ATTRIBUTE format a15 select product, userid, attribute, char_value from product_user_profile ; |
Code sql : | Sélectionner tout |
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 | SQL> conn system Entrez le mot de passe : ******** Connecté. SQL> INSERT INTO product_user_profile (product, userid, attribute, char_value) VALUES 2 ('SQL*Plus', 'FORMATION', 'CREATE', 'DISABLED'); 1 ligne créée. SQL> commit ; Validation effectuée. SQL> conn formation/formation Connecté. SQL> create table dvp ( a varchar2(10)) ; SP2-0544: commande non valide : create SQL> conn system Entrez le mot de passe : ******** Connecté. SQL> delete from product_user_profile where userid='FORMATION' ; 1 ligne supprimée. SQL> commit ; Validation effectuée. SQL> conn formation/formation Connecté. SQL> create table dvp ( a varchar2(10)) ; Table créée. |
À placer dans le fichier Sqlnet.ora (sur le serveur hébergeant le SGBDR) Autoriser les personnes suivantes :
Code sql : | Sélectionner tout |
1 2 | TCP.VALIDNODE_CHECKING=yes TCP.INVITED_NODES=(xxx.x.x.xxx,xxx.x.x.xxx) |
Code sql : | Sélectionner tout |
1 2 | TCP.VALIDNODE_CHECKING=yes TCP.EXCLUDED_NODES=(xxx.x.x.xxx,xxx.x.x.xxx) |
À l'aide de la fonction suivante :
Code sql : | Sélectionner tout |
1 2 3 4 5 6 7 8 | CREATE OR REPLACE FUNCTION restrict_pwd_change (username VARCHAR2, password VARCHAR2, old_password VARCHAR2) RETURN boolean IS BEGIN raise_application_error(-20009, 'ERROR: Modification du mot de passe impossible'); END; / |
Code sql : | Sélectionner tout |
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION restrict_pwd_change;
Code sql : | Sélectionner tout |
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION null;
Vérifiez que l'utilisateur avec lequel vous vous connectez à les droits nécessaires pour faire l'action que vous souhaitez en vous aidant de ce tutoriel : http://oracle.developpez.com/guide/a.../adminrole/#L8
Par exemple, pour voir toutes les tables de la base, il vous faudra avoir le privilège SELECT ANY TABLE.
Depuis la 9i, il est impossible de se connecter avec l'utilisateur SYS si on ne précise pas AS SYSDBA ou AS SYSOPER
Code sql : | Sélectionner tout |
1 2 | SQLPLUS /NOLOG
CONNECT SYS/pwd@db AS SYSDBA |
Via la gestion de profils dédiés, qui peuvent gérer les paramètres suivants :
- FAILED_LOGIN_ATTEMPTS : Nombre d'erreurs permises à la saisie du mot de passe avant que le compte soit verrouillé,
- PASSWORD_GRACE_TIME : En cas de péremption d'un mot de passe dû à un délai fixé par l'administrateur, cette option permet de paramétrer une durée (en jours) pendant laquelle l'utilisateur pourra tout de même se connecter, mais recevra un avertissement,
- PASSWORD_LIFE_TIME : Durée (en jours) de vie maximum d'un mot de passe,
- PASSWORD_LOCK_TIME : Durée (en jours) pendant laquelle un compte sera verrouillé après qu'il ait atteint le nombre d'erreurs permises à la saisie de son mot de passe (FAILED_LOGIN_ATTEMPTS),
- PASSWORD_REUSE_MAX : Nombre de changement de mots de passe requis avant de pouvoir ré-utiliser un mot de passe déjà utilisé,
- PASSWORD_REUSE_TIME : Durée (en jours) minimum pendant laquelle l'utilisateur ne peut pas ré-utiliser un mot de passe déjà utilisé, à partir du moment où celui-ci a été changé,
- PASSWORD_VERIFY_FUNCTION : permet de préciser une fonction (PL/SQL) vérifiant la complexité du mot de passe.
Voici un exemple de mise en application :
1. Créons un utilisateur TEST :
Code sql : | Sélectionner tout |
1 2 3 | CREATE USER TEST IDENTIFIED BY TEST DEFAULT TABLESPACE TBSTEST; |
Code sql : | Sélectionner tout |
1 2 3 4 5 | SQL> CREATE PROFILE Profil_Test LIMIT PASSWORD_LIFE_TIME 60; Profil créé. SQL> ALTER PROFILE Profil_Test LIMIT FAILED_LOGIN_ATTEMPTS 2; Profil modifié. |
Code sql : | Sélectionner tout |
1 2 | SQL> ALTER USER TEST PROFILE Profil_Test;
Utilisateur modifié. |
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 | SQL> connect test/test2@db ERROR: ORA-01017: invalid username/password; logon denied Avertissement : vous n'êtes plus connecté à ORACLE. SQL> connect test/test3@db ERROR: ORA-01017: invalid username/password; logon denied SQL> connect test/test@db ERROR: ORA-28000: the account is locked |
Code sql : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | SQL> SELECT profile, resource_name, limit 2 FROM Dba_Profiles 3 WHERE resource_type = 'PASSWORD' 4 ORDER BY profile; PROFILE RESOURCE_NAME LIMIT --------------- ------------------------- --------------- DEFAULT FAILED_LOGIN_ATTEMPTS UNLIMITED DEFAULT PASSWORD_LIFE_TIME UNLIMITED DEFAULT PASSWORD_REUSE_MAX UNLIMITED DEFAULT PASSWORD_LOCK_TIME UNLIMITED DEFAULT PASSWORD_GRACE_TIME UNLIMITED DEFAULT PASSWORD_VERIFY_FUNCTION NULL DEFAULT PASSWORD_REUSE_TIME UNLIMITED PROFIL_TEST FAILED_LOGIN_ATTEMPTS 2 PROFIL_TEST PASSWORD_LIFE_TIME 60 PROFIL_TEST PASSWORD_REUSE_MAX DEFAULT PROFIL_TEST PASSWORD_LOCK_TIME DEFAULT PROFIL_TEST PASSWORD_GRACE_TIME DEFAULT PROFIL_TEST PASSWORD_VERIFY_FUNCTION DEFAULT PROFIL_TEST PASSWORD_REUSE_TIME DEFAULT 14 ligne(s) sélectionnée(s). |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.