记录一则FGA审计“A用户对B用户某张表的更新操作”需求
环境:Oracle 11.2.0.4
我这里测试A用户为JINGYU,要审计的表为B用户SCOTT下的EMP表。通过FGA来实现。
1.添加审计策略
官方文档语法:
DBMS_FGA.ADD_POLICY(
object_schema VARCHAR2,
object_name VARCHAR2,
policy_name VARCHAR2,
audit_condition VARCHAR2,
audit_column VARCHAR2,
handler_schema VARCHAR2,
handler_module VARCHAR2,
enable BOOLEAN,
statement_types VARCHAR2,
audit_trail BINARY_INTEGER IN DEFAULT,
audit_column_opts BINARY_INTEGER IN DEFAULT);
添加审计策略,目标是审计JINGYU用户有更新SCOTT用户下EMP表的操作。
--审计JINGYU用户有更新SCOTT用户下EMP表的操作
BEGIN
dbms_fga.add_policy(
object_schema => 'SCOTT',
object_name => 'EMP',
policy_name => 'FGA_TEST_01',
audit_condition => 'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''JINGYU'' ',
statement_types => 'UPDATE');
END;
/
这里主要是audit_condition的写法,有一个SYS_CONTEXT('USERENV','SESSION_USER')写法:
select * from dual where SYS_CONTEXT('USERENV','SESSION_USER') = 'JINGYU';
测试一下,证明这样写where条件是有效的:
SQL> show user
USER is "JINGYU"
SQL> select * from dual where SYS_CONTEXT('USERENV','SESSION_USER') = 'JINGYU';
D
-
X
SQL> conn ludan
Enter password:
Connected.
SQL> show user
USER is "LUDAN"
SQL> select * from dual where SYS_CONTEXT('USERENV','SESSION_USER') = 'JINGYU';
no rows selected
SQL>
2.测试审计效果
查询FGA_LOG$,确认审计效果:
select * from FGA_LOG$ where OBJ$NAME = 'EMP';
测试审计效果:
- 使用JINGYU用户更新SCOTT.EMP下的一条记录;预期结果是有审计信息生成。
- 使用LUDAN用户更新SCOTT.EMP下的一条记录;预期结果是无审计信息生成。
3.控制审计策略
**3.1 禁用/启用审计策略**
官方文档语法:
--禁用审计策略
DBMS_FGA.DISABLE_POLICY(
object_schema VARCHAR2,
object_name VARCHAR2,
policy_name VARCHAR2 );
--启用审计策略
DBMS_FGA.ENABLE_POLICY(
object_schema VARCHAR2,
object_name VARCHAR2,
policy_name VARCHAR2,
enable BOOLEAN);
--禁用审计策略
BEGIN
DBMS_FGA.DISABLE_POLICY (
object_schema => 'scott',
object_name => 'emp',
policy_name => 'FGA_TEST_01');
END;
/
--启用审计策略
BEGIN
DBMS_FGA.ENABLE_POLICY (
object_schema => 'SCOTT',
object_name => 'EMP',
policy_name => 'FGA_TEST_01',
enable => TRUE);
END;
/
3.2 删除审计策略
官方文档语法:
DBMS_FGA.DROP_POLICY(
object_schema VARCHAR2,
object_name VARCHAR2,
policy_name VARCHAR2 );
--删除policy
BEGIN
DBMS_FGA.DROP_POLICY(
object_schema => 'SCOTT',
object_name => 'EMP',
policy_name => 'FGA_TEST_01');
END;
/
记录一则FGA审计“A用户对B用户某张表的更新操作”需求的更多相关文章
- Oracle新建用户赋只读某几张表的权限
create user JSETI_WZQ identified by abcdef; -- 假设abcdef是密码 grant connect,resource to JSETI_WZQ; gran ...
- Scott用户的四张表:
Scott用户的四张表: 转载:http://www.cnblogs.com/mchina/archive/2012/09/06/2649951.html 在Oracle的学习之中,重点使用的是SQL ...
- 【转载】MySQL5.7 添加用户、删除用户与授权
mysql -uroot -proot MySQL5.7 mysql.user表没有password字段改 authentication_string: 一. 创建用户: 命令:CREATE USER ...
- oracle中给某个用户某张表的权限设置
今天碰到需要给数据库上某一个用户,开通其中2张表的查询权限,方法如下: grant select on bas_checkcycle to jdc;这个是整个语句. 语句分析: grant selec ...
- mysql5.7创建用户授权删除用户撤销授权
一, 创建用户: 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - ...
- MySQL5.7 添加用户、删除用户与授权
mysql -uroot -proot MySQL5.7 mysql.user表没有password字段改 authentication_string: 一. 创建用户: 命令:CREATE USER ...
- MySQL 添加用户、删除用户与授权
mysql -uroot -proot MySQL5.7 mysql.user表没有password字段改 authentication_string: 一. 创建用户: 命令:CREATE USER ...
- linux 常用命令(三)——(centos7)MySql 5.7添加用户、删除用户与授权
一.创建用户:以root用户登录到数据库进行用户创建 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 例如: CREATE US ...
- Oracle fga审计有这几个特性
fga审计有这几个特性: 本文为原创文章,转载请注明出处: http://blog.csdn.net/msdnchina/article/details/38409057 1.select * fro ...
随机推荐
- 游标SQL Cursor 基本用法
http://www.cnblogs.com/Gavinzhao/archive/2010/07/14/1777644.html 1 table1结构如下 2 id int 3 name va ...
- 如何使用IcoMoon字体图标
如何使用IcoMoon字体图标 一,字体图标工具: 1.登录字体图标网站:https://icomoon.io/app/#/select 2.Svg在线编辑工具:https://c.runoob.co ...
- AudioUnit录音和播放同时进行的一些注意点
录音(播放)和暂停 -(void)start { self.soundTotalLength = 0.0f; if (!self.unitHaveStart) { NSError *error = n ...
- BouncyCastle 密钥转换 - Java
转自: https://blog.csdn.net/a351945755/article/details/63707040 1. PKCS#8 转 PKCS#1 You will need Bounc ...
- Java如何编写Servlet程序
一:Servlet Servlet是Java服务器端编程,不同于一般的Java应用程序,Servlet程序是运行在服务器上的,服务器有很多种,Tomcat只是其中一种. 例子: 在Eclipse中新建 ...
- 网页制作中规范使用DIV+CSS命名规则,可以改善优化功效特别是团队合作时候可以提供合作制作效率,具体DIV CSS命名规则CSS命名大全内容如下:
页头:header 如:#header{属性:属性值;}或.header{属性:属性值;},也许你需要了解class与id区别及用法登录条:loginBar 标志:logo ...
- struts2 中的 addActionError 、addFieldError、addActionMessage的方法【转】
一.addActionError("错误内容"): Action级别的错误消息this.addActionError("错误信息1");this.addAct ...
- 海思QT4.8.0开发总结
1.QT4.8.0移植 2.QT4.8.0界面的透明度设置 发现设置空间透明度时候,QT显示的绿色的背景,没有透明!设置如下: 在程序起始的地方设置: hisi_init(); QWSServer:: ...
- 配置SQL Server 2016无域AlwaysOn(转)
Windows Server 2016 以及 SQL Server 2016出来已有一段时间了,因为Windows Server 2016可以配置无域的Windows群集,因此也能够以此来配置无域的S ...
- pycharm的安装和使用
python开发IDE: pycharm.eclipse 1.要专业版 2.不要汉化版 一.运算符 + - * ./ ** % // 判断某个东西是否在东西里面包含 in not ...