Không có cách đơn giản để đạt được điều này. Bạn có thể làm điều đó bằng cách truy tìm phiên hoặc bằng cách sử dụng kích hoạt đăng nhập. Đây là một ví dụ về cách thực hiện bằng trình kích hoạt đăng nhập DB.
Bảng ghi nhật ký:
create table nls_session_parameters_log
(
inserted_date date,
sid number,
username varchar2(128),
parameter varchar2(30),
value varchar2(40)
);
Cấp công cộng và từ đồng nghĩa:
grant insert on nls_session_parameters_log to public;
create public synonym nls_session_parameters_log for sys.nls_session_parameters_log;
Kích hoạt đăng nhập cơ sở dữ liệu:
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;
/
Kiểm tra:
SQL> conn phil/phil
Connected.
SQL> select count(*) from nls_session_parameters_log;
COUNT(*)
----------
17
SQL>
Rõ ràng là bạn sẽ tốt hơn khi đặt bảng vào một lược đồ phù hợp và cấp trên cơ sở cho mỗi người dùng.
Nếu bạn cần trợ giúp với cách tiếp cận khác (theo dõi phiên), hãy cho tôi biết.