on peut dire que c'est la même, seulement avec l'event 10046 on peut choisir des niveaux
on peut dire que c'est la même, seulement avec l'event 10046 on peut choisir des niveaux
L'audit via Fine Grained Auditing ne recupere le sqltext qu'en 10g!
pour moi pour tracer un seul utilisateur en 9i seul ta methode via trigger after logon me parait bonne.
A+
Ok merci pour les infos sur les niveaux de trace et pour l'audit...
orafrance tu entends quoi par RAC ?
RAC c'est une version d'Oracle pour la clusterisation
Et si tu donnes directement le privilège ALTER SESSION à ton user ? Ca marche ?oui il est valide et il ne plante qu'avec WEBDFE...
Laly.
Ben enfait le user WEBDFE a la base avait les memes droits que le compte sysdba... Pour verifier que le probleme ne vient pas de la, je lui ai rajoute les memes droits que le SYS, et cela ne fonctionne tjs pas...
Je voulais essayer de creer le trigger depuis le compte SYS mais malheureusement le DBA est parti en vacances sans nous laisser le mot de passe ;(
A ce propos, ya-t-il une procedure de password recovery ?!
J'ai essaye de changer le mot de passe depuis le compte system avec la commande :
La commande fonctionne apparement mais lors de la tentative de connection en SYS, il me dit que je n'ai pas les privileges necessaires.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ALTER USER SYS IDENTIFIED BY monpassword
De meme, en utilisant OEM...
Le rôle SYSDBA n'est peut être pas activé durant l'exécution du trigger et peut être que ton user n'arrive pas à faire le alter session.
Essaie, en étant connecté sous WEBDFE :
Et reconnectes toi pour voir si le fichier de trace est correct cette fois ci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 grant alter session to WEBDFE;
Laly.
il y a de nombreux messages à ce sujet dans le forum
lalystar donne une excellente piste, en PL/SQL le rôle est ignoré au profit des GRANT... il faut donc avec spécifiquement le privilége et non pas seulement le rôle qui l'inclus
ok je viens de tester mais ya tjs un pb
le grant fonctionne et voici le fichier de trace :
.trc
Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
ORACLE_HOME =
System name: AIX
Node name:
Release: 2
Version: 5
Machine:
Instance name:
Redo thread mounted by this instance: 1
Oracle process number: 10
Unix process pid: 905338, image: oracle@leo (TNS V1-V3)
*** SESSION ID10.8037) 2005-03-11 14:09:58.119
Skipped error 4098 during the execution of WEBDFE.TRIGGER_WEBDFE
*** 2005-03-11 14:09:58.133
ksedmp: internal or fatal error
ORA-04098: wyzwalacz 'WEBDFE.TRIGGER_WEBDFE' jest niepoprawny; ponowne sprawdzenie poprawno¶ci nie powiodło się
Ne comprenant pas parfaitement le polonais :
Tu es sûr que ton trigger compile ?ORA-04098: trigger 'string.string' is invalid and failed re-validation
Cause: A trigger was attempted to be retrieved for execution and was found to be invalid. This also means that compilation/authorization failed for the trigger.
Action: Options are to resolve the compilation/authorization errors, disable the trigger, or drop the trigger.
Tu peux faire le create trigger et un show err sous SQL*Plus ?
Laly.
Ce qui signifie : il n'y a pas d'erreurs [/code]SQL> Create or replace trigger trigger_webdfe AFTER LOGON ON database
2 begin
3 if user = 'WEBDFE' THEN
4 execute immediate 'alter session set sql_trace = true';
5 end if;
6 end;
7 /
Wyzwalacz zosta³ utworzony.
SQL> show errors
Nie ma b³êdów.
Tu peux mettre en commentaire le execute immediate pour voir si le pb vient de là ou du trigger ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Create or replace trigger trigger_webdfe AFTER LOGON ON database begin if user = 'WEBDFE' THEN --execute immediate 'alter session set sql_trace = true'; null; end if; end; /
Laly.
idem no pbSQL> Create or replace trigger trigger_webdfe AFTER LOGON ON database
2 begin
3 if user = 'WEBDFE' THEN
4 --execute immediate 'alter session set sql_trace = true';
5 null;
6 end if;
7 end;
8 /
Wyzwalacz zosta³ utworzony.
SQL> show errors
Nie ma b³êdów.
je suis en train de mettre en oeuvre la solution ultime, foutre toute la base en trace mais j'aimerai bien trouver d'ou provient le pb
Oui mais dans ce cas as tu un fichier de trace indiquant une erreur ?
Laly.
je ne comprend pas le polonais mais ta varaible user d'ou sort elle
moi je recupere :pour recuperer le user de connexion
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 declare user varchar2(30); select sys_context('userenv','session_user') into User from dual;
ben je n'ai pas de fichier de trace puisque la commande demandant la creation de celui-ci n'est pas executée...
sinon j'ai lancé toute la base en mode trace...
alors c'est bien ca trace (sans mauvais jeu de mot )
mais il y a creation d'un fichier trace pour chaque nouvelle session. l'appli dont je souhaite monitorer les requetes, utilise une nouvelle session pour chaque requete. je me retrouve donc avec une trippotée de fichiers distincts mais bon c'est mieux que rien!
boyardeC,
le user WEBDFE, c'est moi qui l'ai crée et qui force l'appli a l'utiliser pour tracer les requetes
OK mais, ma remarque conserne la varaible user dans ton script .
j'aurais ecrit:peux tu essayer?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Create or replace trigger trigger_webdfe AFTER LOGON ON database declare user varchar2(30); begin if user = 'WEBDFE' THEN --execute immediate 'alter session set sql_trace = true'; null; end if; end;
Je pensais que c'était le trigger qui plantait et générait un fichier de trace, c'est ce que je voulais vérifier mais apparemment ce n'est pas le cas.Envoyé par scop
USER est une pseudo colonne qui renvoie le nom de l'user connecté. Je crois que c'est exactement la même chose que tu indiques avec SYS_CONTEXT.
Laly.
boyardeC ta piste était la bonne, j'ai enfin reussi !
dans ce que tu a ecris, tu initialise la variable user mais oublie ensuite de la remplir avec la requete que tu m'a donné prédemment. Et de toute facon, le alter session est en commentaire donc il ne se passe strictement rien Mais cela allait clairement dans le bon sens!
J'ai pas mal galéré mais j'en ai appris aussi pas mal sur le fonctionnement d'Oracle
avec cela, tout marche tres bien, le fichier de trace est completé correctement!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Create or replace trigger trigger_webdfe AFTER LOGON ON database declare user varchar2(30); begin select sys_context('userenv','session_user')into User from dual; if user = 'WEBDFE' THEN execute immediate 'alter session set sql_trace = true'; null; end if; end;
UN GRAND MERCI A TOUS POUR VOTRE AIDE ET VOTRE COMPREHENSION !
(juste pour la ptite histoire, j'ai posté sur plusieurs forum (dont OTN) et jdois dire que ya pas plus actif et efficace que ce forum francophone )
l'autosatisfaction entre francais ca fait du bien parfois lollll
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager