09技术太卷我学APEX-定制页面及导航菜单权限

本文介绍了如何在APEX中实现自定义页面权限和导航菜单的控制。作者通过创建数据库表来管理用户、角色和页面的关系,然后利用授权方案和控制函数进行权限验证。文章详细展示了从角色管理、页面授权到导航菜单动态生成的全过程,并提供了效果DEMO。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

09技术太卷我学APEX-定制页面及导航菜单权限

0 始终没搞明白APEX的角色如果分配页面的权限,只能自己定制一个

APEX现学现卖开发了个《5217仓库管理》,功能在春节前就搞定了,卡在对页面的权限控制,经过翻阅牛人的博客,结合自己的经验终于搞定了。

1 权限管理设计

每个页面配置给自定义角色功能权限,也就是能看到和操作,还有页面对应的导航菜单,然后自定义用户可以配置多个角色,用户通过角色可以获得角色的功能权限。关系图大概如下图:

用户 角色 页面ID
白龙马 系统管理 10099
10100
10110
库管 410
420

一个用户对多个角色,一个角色对多个页面。

1.1 数据库表设计

需要创建4个系统表,保存用户、角色及页面之间的关系。

  • 角色表(角色ID,角色名称)
  • 角色页面表(角色ID,页面ID)
  • 用户表(用户ID,用户姓名,密码)
  • 用户角色表(用户ID,角色ID)
--角色表
CREATE TABLE  "SYS_ROLE" 
   (	"P_ID" NUMBER(17,0) NOT NULL ENABLE, 
	"ROLE_NAME" VARCHAR2(17) NOT NULL ENABLE, 
	"S_NOTE" VARCHAR2(52), 
	 CONSTRAINT "SYS_ROLE_PK" PRIMARY KEY ("P_ID")
  USING INDEX  ENABLE, 
	 CONSTRAINT "SYS_ROLE_NAME" UNIQUE ("ROLE_NAME")
  USING INDEX  ENABLE
   )

--角色页面表
CREATE TABLE  "SYS_ROLE_PAGE" 
   (	"P_ID" NUMBER(17,0) NOT NULL ENABLE, 
	"ROLE_NAME" VARCHAR2(17) NOT NULL ENABLE, 
	"PAGE_ID" NUMBER(17,0) NOT NULL ENABLE, 
	"S_NOTE" VARCHAR2(52), 
	 CONSTRAINT "SYS_ROLE_PAGE_PK" PRIMARY KEY ("P_ID")
  USING INDEX  ENABLE, 
	 CONSTRAINT "SYS_ROLE_PAGE_UK1" UNIQUE ("ROLE_NAME", "PAGE_ID")
  USING INDEX  ENABLE
   )

--用户表
CREATE TABLE  "SYS_USER" 
   (	"P_ID" NUMBER(13,0) NOT NULL ENABLE, 
	"USER_NAME" VARCHAR2(17) NOT NULL ENABLE, 
	"PASS_WORD" VARCHAR2(17) NOT NULL ENABLE, 
	"S_MOBILE" VARCHAR2(17), 
	"S_EMAIL" NVARCHAR2(52), 
	"NICK_NAME" VARCHAR2(17), 
	 CONSTRAINT "SYS_USER_PK" P
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值