Es gibt keinen einfachen Weg, dies zu erreichen. Sie können dies entweder tun, indem Sie die Sitzung verfolgen oder einen Anmeldetrigger verwenden. Hier ist ein Beispiel für die Verwendung eines DB-Anmeldetriggers.
Protokollierungstabelle:
create table nls_session_parameters_log
(
inserted_date date,
sid number,
username varchar2(128),
parameter varchar2(30),
value varchar2(40)
);
Öffentlicher Zuschuss und Synonym:
grant insert on nls_session_parameters_log to public;
create public synonym nls_session_parameters_log for sys.nls_session_parameters_log;
Auslöser für die Datenbankanmeldung:
create or replace trigger nls_log_dbtrig after logon on database
begin
if user in ('PHIL') then
insert into nls_session_parameters_log
select sysdate, (select sys_context('USERENV','SID') from dual), (select user from dual),parameter, value
from nls_session_parameters;
end if;
exception
when others then
null;
end;
/
Prüfung:
SQL> conn phil/phil
Connected.
SQL> select count(*) from nls_session_parameters_log;
COUNT(*)
----------
17
SQL>
Offensichtlich ist es besser, wenn Sie die Tabelle in ein geeignetes Schema einfügen und pro Benutzer gewähren.
Wenn Sie Hilfe bei einem anderen Ansatz (Sitzungsverfolgung) benötigen, lassen Sie es mich wissen.