Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Comment empecher un utilisateur de se connecter avec un outil spécifique ?
auteur : SheikYerbouti
Via un trigger de type AFTER LOGON :

L'exemple suivant concerne l'outil Toad :
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;
/
Ce trigger a deux limitations qu'il est important de connaître :
  • 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é :
alter trigger interdire_toad disable ;

alter trigger interdire_toad enable  ;

Comment empêcher un utilisateur d'effectuer certaines opérations sous Sql*Plus ?
auteur : Jaouad
Il suffit d'effectuer une insertion dans la table product_user_profile :
INSERT INTO product_user_profile (product, userid, attribute, char_value) 
                          VALUES ('SQL*Plus', 'SCOTT', 'CREATE', 'DISABLED');
COMMIT ;
Comment voir les interdictions :
set linesize 250
col CHAR_VALUE format a15
col ATTRIBUTE format a15
select product, userid, attribute, char_value from product_user_profile ;
Voici un exemple de mise en oeuvre, où l'attribut CREATE est désactivé pour l'utilisateur FORMATION :
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.

Comment autoriser/interdire une connexion Net*8 ?
auteur : Jaouad
A placer dans le fichier Sqlnet.ora ( sur le serveur hébergeant le SGBDR ) Autoriser les personnes suivantes :
TCP.VALIDNODE_CHECKING=yes
TCP.INVITED_NODES=(xxx.x.x.xxx,xxx.x.x.xxx)
Interdire les personnes suivantes :
TCP.VALIDNODE_CHECKING=yes
TCP.EXCLUDED_NODES=(xxx.x.x.xxx,xxx.x.x.xxx)

Comment interdire le changement de mot de passe à un utilisateur ?
auteur : Jaouad
À l'aide de la fonction suivante :
REATE 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; 
/
et de la commande suivante :
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION restrict_pwd_change;
Pour désactiver cette restriction, utilisez cette commande :
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION null;

Je suis administrateur et pourtant j'ai une erreur de privilèges insuffisants ?
auteur : Fred_D
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 : fr http://oracle.developpez.com/guide/administration/adminrole/#L8

Par exemple, pour voir toutes les tables de la base, il vous faudra avoir le privilège SELECT ANY TABLE.


Comment me connecter en tant que SYS, cela me retourne une erreur ?
auteur : LeoAnderson
Depuis la 9i, il est impossible de se connecter avec l'utilisateur SYS si on ne précise pas AS SYSDBA ou AS SYSOPER
SQLPLUS /NOLOG 
CONNECT SYS/pwd@db AS SYSDBA

precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2006  Developpez LLC. Tout 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'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com