数据销毁
功能描述
Vastbase 数据库支持使用函数table_destroy()批量销毁表数据并删除xlog文件,支持使用函数destroy_sensitive_data()销毁带有敏感资源标签的敏感数据。
注意事项
建议执行销毁前关闭审计日志及双写日志,避免数据在其中记录。
示例
前置步骤 关闭审计日志及双写日志,在$PGDATA/postgresql.conf配置文件中设置以下参数为off,并重启数据库使参数生效。
enable_security_policy=off;
audit_enabled=off;
enable_double_write=off;
示例1 数据销毁
1、创建测试表并插入测试数据。
create table test(id int, name text) ;
insert into test values(1,'lisi');
insert into test values(2,'zhangsan');
2、使用table_destroy销毁数据。
select table_destroy('test');
3、查询表test。
select * from test;
返回结果为:
id | name
-----+---------
(0行记录)
4、退出数据库,在用户目录下查询。无返回结果表示已销毁完成。
grep -iR 'lisi'
grep -iR 'zhangsan'
示例2:敏感数据销毁
1、创建测试表并插入测试数据。
create table emp(
empno number(10) primary key,
ename varchar2(30),
job varchar2(30)
);
insert into emp values(1, 'zhangsan', 'CLERK');
insert into emp values(2, 'SMITH', 'CLERK' );
insert into emp values(3, 'lisi', 'MANAGER' );
insert into emp values(4, 'TOM', 'ENGINEER' );
insert into emp values(5, 'Steve', 'MANAGER' );
7、对表创建敏感资源标签。
create resource label label1 add table(emp) sensitive;
8、查看gs_policy_label系统表,新增is_sensitive 字段值为t (true)。
select * from gs_policy_label where labelname='label1';
返回结果为:
labelname | labeltype | fqdnnamespace | fqdnid | relcolumn | fqdntype | is_sensitive
---------------+-------------+---------------------+---------+-------------+-------------+------------------
label1 | resource | 16648 | 16649 | | table | t
(1行记录)
9、销毁数据库内所有敏感数据。
select * from destroy_sensitive_data();
10、查询结果。
select * from emp;
返回结果为:
empno | ename | job |
-----------+-----------+------+
(0行记录)
11、清理测试表。
DROP TABLE emp;