基于database创建一个系统trigger,遇到了权限问题,查了一下原来是需要ADMINISTER DATABASE TRIGGER权限[@more@]SQL> create or replace trigger trigg_db
2 after logon on database
3 -- for each row
4 declare
5 -- local variables here
6 begin
7 insert into t_trace values(sys_context('userenv','ip_address'),
8 sys_context('userenv','terminal'),
9 sys.login_user,
10 sysdate,
11 sys.sysevent);
12 end trigg_db;
13 /
after logon on database
*
第 2 行出现错误:
ORA-01031: 权限不足
--============================
SQL> grant ADMINISTER DATABASE TRIGGER to test;
授权成功。
SQL>
--===========================
SQL> create or replace trigger trigg_db
2 after logon on database
3 -- for each row
4 declare
5 -- local variables here
6 begin
7 insert into t_trace values(sys_context('userenv','ip_address'),
8 sys_context('userenv','terminal'),
9 sys.login_user,
10 sysdate,
11 sys.sysevent);
12 end trigg_db;
13 /
触发器已创建
SQL>
--=========================
To create a trigger on DATABASE, you must have the ADMINISTER DATABASE TRIGGER privilege. If this privilege is later revoked, then you can drop the trigger, but not alter it.
--========================