VPD(虚拟专用数据库) & rls(row LEVEL security)
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,1.建立主用户 测试表 测试数据 分用户--主数据用户create user mainuser identified by oracle;grant connect,resource to mainu
千家信息网最后更新 2025年01月21日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安全错误
数据库的锁怎样保障安全
数据库的日志怎么看
国泰安数据库的英文缩写
dell服务器默认raid0
服务器认领地皮指令
服务器水冷散热器
克拉玛依软件开发规定
网上云服务器价格实惠
互联网高科技与市场监督的联系
智电生活北京国电通网络技术
监控应用服务器中间件作用
个人征信信息基础数据库管理办法
服务器管理口地址大全
数据库数据有效性语句
买手软件开发
闪盾安全验证服务器正在维修
软件开发 系统软件
数据库两个菱形是什么
数据库的驱动链接是什么
北京联通adsl服务器
信息网络安全监察很难吗
大舜网络技术
ieee数据库开通
服务器电源关闭风扇休眠
海贝网络技术有限公司
深州软件开发专业
geo数据库的芯片数据
对网络安全保险感悟
大华单元门口机服务器上添加权限
双阳区智能化网络技术什么价格
c语言软件开发系统