Oracle 视图加密实现安全的数据访问(oracle视图加密)
Oracle视图加密 (View Encryption) 是Oracle数据库使用者可以有效保护数据安全的一种方法。Oracle视图加密只有在禁止用户对数据表进行直接访问时才会使用。通过加密安全性视图,可以把相应表中敏感列及其绑定数据加密,而用户只能查询该视图能够访问到的加密数据,同时不需要对业务程序的代码进行更改。
首先,要在Oracle数据库上启用视图加密,必须配置各种参数,包括:使用DBMS_RLS包配置安全策略,DBMS_OBFUSCATION_TOOLKIT配置加密函数、密钥管理,以及其他可选参数。
让我们看一下示例:
创建用户
CREATE USER viewdb IDENTIFIED BY viewdb;
GRANT CONNECT, RESOURCE TO viewdb;
创建测试表
CREATE TABLE viewdb.people (
id NUMBER,
first_name VARCHAR2(30 BYTE),
last_name VARCHAR2(30 BYTE),
birth_date DATE,
ssn VARCHAR2(12 BYTE)
);
授权用户
GRANT SELECT ON PEOPLE TO viewdb;
创建视图
CREATE VIEW viewdb.v_people AS
SELECT id, first_name, last_name,
DBMS_OBFUSCATION_TOOLKIT.DESEncrypt (TO_CHAR (birth_date) ) as birth_date,
DBMS_OBFUSCATION_TOOLKIT.DESEncrypt (ssn) ssn
FROM people
WHERE first_name IS NOT NULL;
创建安全策略
BEGIN
DBMS_RLS.CREATE_POLICY (
object_schema = VIEWDB ,
object_name = V_PEOPLE ,
policy_name = PEOPLE_SSN_POLICY ,
function_schema = VIEWDB ,
policy_function = people_ssn_policy_func ,
statement_types = SELECT ,
policy_type = DBMS_RLS.CONTEXT
);
END;
/
创建安全策略函数
CREATE or REPLACE FUNCTION viewdb.people_ssn_policy_func (
p_schema VARCHAR2,
p_object VARCHAR2 )
RETURN VARCHAR2
IS
BEGIN
IF ( SYS_CONTEXT ( USERENV , AUTHENTICATED_IDENTITY ) = VIEWDB )
THEN
RETURN NULL; GRANT SELECT
ELSE
RETURN SSN= *** MODIFY SELECT
END IF;
END;
/
本文介绍了如何通过Oracle视图加密的方式实现安全的数据访问,包括配置参数、创建安全策略及安全策略函数等步骤。通过这种方式,可以有效保护重要数据,限制用户的访问权限,同时不影响业务程序的功能。
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 Oracle 视图加密实现安全的数据访问(oracle视图加密)
相关文章
- ORA-22060: argument [string] is an invalid or uninitialized number ORACLE 报错 故障修复 远程处理
- 使用Oracle字符分隔符实现数据分割(oracle字符分隔符)
- 学习 Oracle源码学习之路新启航(oracle源码)
- Oracle视图不存在: 无法访问数据(oracle视图不存在)
- VS如何连接Oracle数据库?(vs如何连接oracle)
- Oracle数据库查询结果为空,该如何处理?(oracle查询数据为空)
- Oracle 表空间备份:保障数据安全(oracle表空间备份)
- 解锁Oracle:给视图赋予权限(oracle给视图赋权限)
- Oracle数据字典快速导出实践(oracle数据字典导出)
- 「Oracle数据库管理」全面提升您的技能水平(oracle数据库管理从入门到精通)
- Oracle: 大于等于,数据高效存储(oracle大于等于)
- 速解决Oracle快速增加内存容量解决方案(oracle 内存增涨快)
- Oracle锁表进程安全关闭(oracle关闭锁表进程)
- 使用NAS作为Oracle的解决方案(nas可以当oracle)
- Oracle中视图 智能表现你的数据(oracle中视图的定义)
- Oracle数据库修改分区范围的指南(oracle修改分区范围)
- 库Oracle保持双库同步运转协调(oracle保留两个数据)
- 查询Oracle中如何按时间快速查询(oracle中 按照时间)
- Oracle数据库中值不等于实现方式(oracle中值不等于)
- Oracle 中 emgr 管理工具使用指南(oracle中e.mgr)
- Oracle将两列数据合并成一列(oracle两列合成一列)
- Oracle Valut保护企业终端数据安全(oracle valut)
- Oracle EM在哪里发现你的数据之眼(oracle em在哪)