100.Oracle数据库SQL开发之 用户特权和角色——审计
欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50042867
ORACLE数据库软件包含审计功能,可以跟踪数据库操作。
1. 执行审计需要的特权
用户在发出AUDIT语句之前,必须被授予某些特权:
审计高级别操作时,用户必须具有AUDIT SYSTEM特权。高级别操作的一个例子是发出任何SELECT语句,与涉及的表无关。
跟踪特定数据库对象上的操作时,要么用户必须拥有AUDIT ANY特权,要么数据库对象必须在他们的模式中。
授权如下:
GRANT AUDIT SYSTEM TO store;
GRANT AUDIT ANY TO store;
2. 审计示例
审计CREATE TABLE语句
store@PDB1> audit create table;
Audit succeeded.
store@PDB1> create table test ( id integer);
Table created.
然后通过USER_AUDIT_TRAIL视图查看对当前登陆用户的审计跟踪信息。
也可以使用WHENEVER SUCCESSFUL和WHENEVER NOT SUCCESSFUL选项来之处何时应该执行审计。
3. 审计跟踪视图
USER_AUDIT_OBJECT显示当前用户可访问的所有对象的审计记录
USER_AUDIT_SESSION显示当前用户连接到数据库和断开数据库连接的审计记录
USER_AUDIT_STATEMENT显示由当前用户发出的GRANT、REVOKE、AUDIT、NOAUDIT和ALTER SYSTEM语句的审计记录。
USER_AUDIT_TRAIL 显示与当前用户相关的所有审计跟踪条目。
可以使用这些视图来分析审计跟踪的内容。
包括 DBA_AUDIT_OBJECT,DBA_AUDIT_SESSION,DBA_AUDIT_STATEMENT,DBA_AUDIT_TRAIL以及其他视图。