oracle数据库权限

1、权限5张表
在这里插入图片描述
drop table t_user;
drop table t_role;
drop table t_menu;
drop table t_user_role;
drop table t_role_menu;
drop sequence seq_user_role;
drop sequence seq_role_menu;
purge recyclebin;

/用户表/
– 主键100+
create table t_user
(
u_id int primary key,
u_account varchar2(12),
u_password varchar2(12)
);
/角色表/
– 主键200+
create table t_role
(
r_id int primary key,
r_name varchar2(12),
r_desc varchar2(100)
);

/权限清单表/
– 主键300+
create table t_menu
(
m_id int primary key,
m_name varchar2(12),
m_desc varchar2(100)
);

/用户角色关系/
create table t_user_role
(
id int primary key,
u_id int,
r_id int,
describ varchar2(100) default null
);

create sequence seq_user_role
start with 1
increment by 1
nocache
nocycle;

/角色权限关系表/
create table t_role_menu
(
id int primary key,
m_id int,
r_id int,
describ varchar2(100) default null
);
create sequence seq_role_menu
start with 1
increment by 1
nocache
nocycle;

/添加测试数据/
/用户测试数据/
insert into t_user values (101,‘xiaohei’,‘123456’);
insert into t_user values (102,‘xiaohong’,‘123456’);
insert into t_user values (103,‘xiaohua’,‘123456’);
insert into t_user values (104,‘xiaoming’,‘123456’);
insert into t_user values (105,‘xiaoqiang’,‘123456’);
/角色测试数据/
insert into t_role values (201,‘connect’,‘会话、查询’);
insert into t_role values (202,‘resource’,‘会话、查询、DDL、DML、事务’);
insert into t_role values (203,‘dba’,‘all’);
/权限清单测试数据/
insert into t_menu values (301,‘session’,‘会话’);
insert into t_menu values (302,‘query’,‘查询’);
insert into t_menu values (303,‘ddl’,‘数据定义语言’);
insert into t_menu values (304,‘dml’,‘数据操作语言’);
insert into t_menu values (305,‘dcl’,‘数据控制语言’);
insert into t_menu values (306,‘transication’,‘事务’);
/角色清单关系/
insert into t_role_menu values (seq_role_menu.nextval,301,201,default);
insert into t_role_menu values (seq_role_menu.nextval,302,201,default);
insert into t_role_menu values (seq_role_menu.nextval,301,202,default);
insert into t_role_menu values (seq_role_menu.nextval,302,202,default);
insert into t_role_menu values (seq_role_menu.nextval,303,202,default);
insert into t_role_menu values (seq_role_menu.nextval,304,202,default);
insert into t_role_menu values (seq_role_menu.nextval,306,202,default);
insert into t_role_menu values (seq_role_menu.nextval,301,203,default);
insert into t_role_menu values (seq_role_menu.nextval,302,203,default);
insert into t_role_menu values (seq_role_menu.nextval,303,203,default);
insert into t_role_menu values (seq_role_menu.nextval,304,203,default);
insert into t_role_menu values (seq_role_menu.nextval,305,203,default);
insert into t_role_menu values (seq_role_menu.nextval,306,203,default);

commit;

–将小黑提升为resource角色
insert into t_user_role values (seq_user_role.nextval,101,202,‘经理’);
– 查看小黑的权限
–1、根据用户找到角色
–2、根据角色找到权限
select u.u_account,ur.r_id,rm.m_id,m.m_name,m.m_desc
from t_user u
left join t_user_role ur on u.u_id=ur.u_id
left join t_role_menu rm on ur.r_id=rm.r_id
left join t_menu m on rm.m_id=m.m_id
where u.u_id=‘101’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值