Sql 监视谁正在向表中写入内容
我坐在一个oracle数据库上,数据库中有很多存储过程。我没有写它们,也不能编辑它们 我可以看到,数据正在被写入一个表中,但我不知道是什么进程在这样做,我确信这是一个自动进程,没有用户在积极地这样做 我还知道用于写入数据的过程 是否有任何方法可以监视调用该过程的进程? 我想这是一个事件,但我不确定Sql 监视谁正在向表中写入内容,sql,oracle,Sql,Oracle,我坐在一个oracle数据库上,数据库中有很多存储过程。我没有写它们,也不能编辑它们 我可以看到,数据正在被写入一个表中,但我不知道是什么进程在这样做,我确信这是一个自动进程,没有用户在积极地这样做 我还知道用于写入数据的过程 是否有任何方法可以监视调用该过程的进程? 我想这是一个事件,但我不确定 BR Kresten您可以先检查DBMS\u调度程序,看看它们是否在那里启动 Select job_name "Job name", owner
BR Kresten您可以先检查DBMS\u调度程序,看看它们是否在那里启动
Select
job_name "Job name",
owner "Owner",
decode(enabled,'TRUE','Yes','FALSE','No') "Enabled?",
to_char(last_start_date,'MM/DD/YYYY HH24:MI:SS') "Last run",
to_char(next_run_date,'MM/DD/YYYY HH24:MI:SS') "Next date",
program_owner "Program owner",
program_name "Program name",
job_type "Job type",
job_action "Job action",
schedule_name "Schedule name",
start_date "Start date",
repeat_interval "Repeat interval"
from dba_scheduler_jobs order by 2, 3 desc, 4 desc;
另一种可能是对相关表启用审核,请参见Oracle文档中的以下示例
您可以通过dba_common_audit_trail视图查看审计记录
请注意,审核可能会产生严重的性能开销,因此请了解如何启用和禁用它。你可能不想让它全职工作 您可以先检查DBMS_调度程序,看看它们是否在那里启动
Select
job_name "Job name",
owner "Owner",
decode(enabled,'TRUE','Yes','FALSE','No') "Enabled?",
to_char(last_start_date,'MM/DD/YYYY HH24:MI:SS') "Last run",
to_char(next_run_date,'MM/DD/YYYY HH24:MI:SS') "Next date",
program_owner "Program owner",
program_name "Program name",
job_type "Job type",
job_action "Job action",
schedule_name "Schedule name",
start_date "Start date",
repeat_interval "Repeat interval"
from dba_scheduler_jobs order by 2, 3 desc, 4 desc;
另一种可能是对相关表启用审核,请参见Oracle文档中的以下示例
您可以通过dba_common_audit_trail视图查看审计记录
请注意,审核可能会产生严重的性能开销,因此请了解如何启用和禁用它。你可能不想让它全职工作 记录上有时间戳吗?您可以将时间与并发请求日志进行比较,以查看并发请求是否正在调用该过程。或者可能是触发器正在调用SP。我想您需要的是启用跟踪和检查会话。我不确定在哪里可以找到请求日志。是文件还是表格?记录上有时间戳吗?您可以将时间与并发请求日志进行比较,以查看并发请求是否正在调用该过程。或者可能是触发器正在调用SP。我想您需要的是启用跟踪和检查会话。我不确定在哪里可以找到请求日志。是文件还是桌子?