VPD(虚拟专用数据库) & rls(row LEVEL security)
发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,1.建立主用户 测试表 测试数据 分用户--主数据用户create user mainuser identified by oracle;grant connect,resource to mainu
千家信息网最后更新 2024年11月22日VPD(虚拟专用数据库) & rls(row LEVEL security)1.建立主用户 测试表 测试数据 分用户
--主数据用户
create user mainuser identified by oracle;
grant connect,resource to mainuser;
--wh分用户
create user whuser identified by oracle;
grant connect,resource to whuser;
--sw分用户
create user swuser identified by oracle;
grant connect,resource to swuser;
--测试表与数据
create table mainuser.maintab(name varchar2(20),salary number(8,2),DEP_ID number(8,2));
insert into mainuser.maintab values('whuser',5000,1);
insert into mainuser.maintab values('swuser',3000,2);
--表赋权限
grant select on mainuser.maintab to whuser;
grant select on mainuser.maintab to swuser;
2.建立控制函数
create or replace function main_fun
(owner varchar2,objname varchar2) return varchar2
is
v_where_clause varchar2(2000);
begin
v_where_clause :=' upper(name)=' || '''' || sys_context('userenv','session_user') || '''';
return v_where_clause;
end;
/
3.建立rls策略
BEGIN
dbms_rls.add_policy(object_schema => 'mainuser',
object_name => 'maintab',
policy_name => 'main_rlw',
function_schema =>'mainuser',
policy_function => 'main_fun',
statement_types =>'select',
sec_relevant_cols=>'salary');
END;
/
4.验证
SQL> connect swuser/oracle
Connected.
SQL> select * from mainuser.maintab;
NAME SALARY DEP_ID
-------------------- ---------- ----------
swuser 3000 2
SQL> connect whuser/oracle
Connected.
SQL> select * from mainuser.maintab;
NAME SALARY DEP_ID
-------------------- ---------- ----------
whuser 5000 1
--主数据用户
create user mainuser identified by oracle;
grant connect,resource to mainuser;
--wh分用户
create user whuser identified by oracle;
grant connect,resource to whuser;
--sw分用户
create user swuser identified by oracle;
grant connect,resource to swuser;
--测试表与数据
create table mainuser.maintab(name varchar2(20),salary number(8,2),DEP_ID number(8,2));
insert into mainuser.maintab values('whuser',5000,1);
insert into mainuser.maintab values('swuser',3000,2);
--表赋权限
grant select on mainuser.maintab to whuser;
grant select on mainuser.maintab to swuser;
2.建立控制函数
create or replace function main_fun
(owner varchar2,objname varchar2) return varchar2
is
v_where_clause varchar2(2000);
begin
v_where_clause :=' upper(name)=' || '''' || sys_context('userenv','session_user') || '''';
return v_where_clause;
end;
/
3.建立rls策略
BEGIN
dbms_rls.add_policy(object_schema => 'mainuser',
object_name => 'maintab',
policy_name => 'main_rlw',
function_schema =>'mainuser',
policy_function => 'main_fun',
statement_types =>'select',
sec_relevant_cols=>'salary');
END;
/
4.验证
SQL> connect swuser/oracle
Connected.
SQL> select * from mainuser.maintab;
NAME SALARY DEP_ID
-------------------- ---------- ----------
swuser 3000 2
SQL> connect whuser/oracle
Connected.
SQL> select * from mainuser.maintab;
NAME SALARY DEP_ID
-------------------- ---------- ----------
whuser 5000 1
用户
数据
测试
函数
策略
赋权
控制
验证
数据库
专用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
代理服务器集群
数据库索引效率高
数据库搭建报价
京东云服务器怎么安装
网络安全学院就业方向
学习oracle数据库书籍
奥的斯服务器怎么进入安全回路
软件开发活动的定义
mariadb数据库是干啥的
vs如何输出数据库中的数据
sql备份数据库 收缩
传奇世界数据库修改
软件开发著作权如何申请
cfhd未连接到服务器
丰台区电子软件开发介绍
苏州网络技术咨询销售
动森服务器家具
数据库select语句加索引
方舟生存进化付费服务器
魔神数据库 蜗牛
v3服务器
pc28开庄软件开发
网络安全的安全技术有哪些
软件开发需要什么文章
东方电子充电桩网络安全
嘉兴软件开发订制
服务器 日有效pv
数据库维护不包括什么意思
开票服务器分配管理系统
三银科技软件开发