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
定制APEX权限管理:页面与导航菜单控制

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





