数据库应用系统权限控制-(行锁/按钮锁on java,php,aspx)
来源:互联网 发布:磁力链接在线播放软件 编辑:程序博客网 时间:2024/04/28 11:20
--------------------------------------------------------------------
function:数据库应用系统权限控制
file :system_authority_plan.txt
author :chinayaosir QQ:44633197
Tools :Authentication and Authorization on enterprise system
date :6/01/2011
blog :http://blog.csdn.net/chinayaosir
note :禁止其它网站转载此文章
-----------------
detail list
用户密码检查锁
系统菜单权限过滤锁
管理员分配给用户的权限锁
系统工作流程中的行锁,按钮锁
--------------------------------------------------------------------
index.jsp/index.php/index.aspx
用户密码验证锁
用户密码验证锁函数
返回值设定:pass代表通过,fail代表密码不对
1.调用事件(登陆按钮调用)
2.dao函数String getloginlock(String u,String p);
3.DB函数f_getloginlock(u varchar2,p varchar2) return varchar2
password需要使用md5进行加解密
--------------------------------------------------------------------
menu.jsp/menu.php.menu.aspx
菜单检查锁
菜单锁函数
返回值设定:可用菜单对象列表
0.调用事件(网页加载完成后调用)
1.DAO函数list<T> f_getmenulist(String u);
--------------------------------------------------------------------
xxxxx.jsp/xxx.php/xxx.aspx
用户默认按钮锁
用戶按钮权限审核函数
返回值设定:4位权限控制符号XXXX=RWDP(1000=R---,1001=R--P,1101=RW-P,1111=RWDP)
0.调用事件(网页加载完成后调用)
1.dao函数String getuserrwdplock(String u,String m)
2.DB函数f_getuserrwdplock(u varchar2,m varchar2) return varchar2
实现方法=action+jndi+ejb+database function
it can used on java,php,.net
--------------------------------------------------------------------
作业流程行锁
查询数据时算出每行的权限(产品编号,订单号,采购单号,发票号)
工作流程的行锁函数加入到XXXXXXX视图的rowlock,网页界面按rowlock值做锁规则(修改/刪除限制)!
0.调用事件(查询视图)返回值设定:R,W(R=只读,M=修改)
//order item行锁定(R/M)? by item
1.v_itembasic.rowlock
2.DB函数f_getrowlock_item(item) return varchar2
1.v_oc_detail.rowlock
2.DB函数f_getrowlock_oc(oc,item,shdt) return varchar2
1.v_oa_detail.rowlock
2.DB函数f_getrowlock_oa(oc,item,shdt,fty)return varchar2
1.v_lp_detail.rowlock
2.DB函数f_getrowlock_lp(oc,item,shdt,fty,lp,ctns) return varchar2
1.v_iv_detail.rowlock
2.DB函数f_getrowlock_iv(oc,item,shdt,fty,lp,inv) return varchar2
--sample code see below
create or replace function f_getrowlock_oc(oc varchar2,item varchar2,sd date)
return varchar2
is
findrow number(18,0);
returnv varchar2(1);
begin
findrow:=0;
returnv:='';
select count(*) into findrow
from oa_factory
where oc_number=oc and itemnumber=item and shipp_date=sd;
if (findrow>=1) then
returnv:='R';
else
returnv:='M';
end if;
return returnv;
end ;
//行锁函数f_getrowlock_oc应用到视图v_oc_detail代码
create or replace view v_oc_detail(
oc_number,
itemnumber,
shipdate,
ordercqty,
rowlock)
AS
SELECT
d.oc_number,
d.itemnumber,
d.shipp_date,
d.ordercqty,
f_getrowlock_oc(d.oc_number,d.itemnumber,d.shipp_date)
from oc_detail d;
--------------------------------------------------------------------
作业流程的按钮锁
查询数据时算出页面按钮(save,delete,print)权限(产品编号,订单号,采购单号,发票号)
工作流程的按钮锁函数(数据查询完毕之后调用它)返回值设定:(WD,W-,--,-D)W=保存,D=删除
0.调用事件(网页数据装载时调用Action call ejb)
//itembasic(save和delete按钮锁可用)
1.DAO函数String getbtnlock_item(item)
2.DB函数f_getbtnlock_item(item varchar2) return varchar2
//order confirm(save和delete按钮锁可用?)
1.DAO函数String getbtnlock_oc(oc)
2.DB函数f_getbtnlock_oc(oc varchar2) return varchar2
//oa(save和delete按钮锁可用?)
1.DAO函数String getbtnlock_oa(oc)
2.DB函数f_getbtnlock_oa(oc varchar2) return varchar2
//lp(save和delete按钮锁可用?)
1.DAO函数String getbtnlock_lp(lp)
2.DB函数f_getbtnlock_lp(lp varchar2) return varchar2
//iv(save和delete按钮锁可用?)
1.DAO函数String getbtnlock_iv(iv)
2.DB函数f_getbtnlock_iv(inv varchar2) return varchar2
--sample code see below
create or replace function f_getbtnlock_oc(oc_i varchar2) return varchar2
is
temp varchar2(2);
saveflag varchar2(1);
delflag varchar2(1);
eachrows oc_detail%ROWTYPE;
cursor cursor_row is select * from oc_detail where (oc_number = oc_i);
returnv varchar2(2);
begin
returnv:='--';
temp:='';
delflag:='D';
saveflag:='W';
--get delflag value
open cursor_row;
loop
fetch cursor_row into eachrows;
exit when cursor_row%notfound;
temp:=f_getrowlock_oc(eachrows.oc_number,eachrows.itemnumber,eachrows.shipp_date);
if (temp='R') then
delflag:='-';
exit;
end if;
end loop;
close cursor_row;
--get saveflag value
open cursor_row;
loop
fetch cursor_row into eachrows;
exit when cursor_row%notfound;
temp:=f_getrowlock_oc(eachrows.oc_number,eachrows.itemnumber,eachrows.shipp_date);
if (temp='R') then
saveflag:='-';
else
saveflag:='W';
exit;
end if;
end loop;
close cursor_row;
returnv:=saveflag||delflag;
return returnv;
end ;
--------------------------------------------------------------------
function:数据库应用系统权限控制
file :system_authority_plan.txt
author :chinayaosir QQ:44633197
Tools :Authentication and Authorization on enterprise system
date :6/01/2011
blog :http://blog.csdn.net/chinayaosir
note :禁止其它网站转载此文章
-----------------
detail list
用户密码检查锁
系统菜单权限过滤锁
管理员分配给用户的权限锁
系统工作流程中的行锁,按钮锁
--------------------------------------------------------------------
index.jsp/index.php/index.aspx
用户密码验证锁
用户密码验证锁函数
返回值设定:pass代表通过,fail代表密码不对
1.调用事件(登陆按钮调用)
2.dao函数String getloginlock(String u,String p);
3.DB函数f_getloginlock(u varchar2,p varchar2) return varchar2
password需要使用md5进行加解密
--------------------------------------------------------------------
menu.jsp/menu.php.menu.aspx
菜单检查锁
菜单锁函数
返回值设定:可用菜单对象列表
0.调用事件(网页加载完成后调用)
1.DAO函数list<T> f_getmenulist(String u);
--------------------------------------------------------------------
xxxxx.jsp/xxx.php/xxx.aspx
用户默认按钮锁
用戶按钮权限审核函数
返回值设定:4位权限控制符号XXXX=RWDP(1000=R---,1001=R--P,1101=RW-P,1111=RWDP)
0.调用事件(网页加载完成后调用)
1.dao函数String getuserrwdplock(String u,String m)
2.DB函数f_getuserrwdplock(u varchar2,m varchar2) return varchar2
实现方法=action+jndi+ejb+database function
it can used on java,php,.net
--------------------------------------------------------------------
作业流程行锁
查询数据时算出每行的权限(产品编号,订单号,采购单号,发票号)
工作流程的行锁函数加入到XXXXXXX视图的rowlock,网页界面按rowlock值做锁规则(修改/刪除限制)!
0.调用事件(查询视图)返回值设定:R,W(R=只读,M=修改)
//order item行锁定(R/M)? by item
1.v_itembasic.rowlock
2.DB函数f_getrowlock_item(item) return varchar2
1.v_oc_detail.rowlock
2.DB函数f_getrowlock_oc(oc,item,shdt) return varchar2
1.v_oa_detail.rowlock
2.DB函数f_getrowlock_oa(oc,item,shdt,fty)return varchar2
1.v_lp_detail.rowlock
2.DB函数f_getrowlock_lp(oc,item,shdt,fty,lp,ctns) return varchar2
1.v_iv_detail.rowlock
2.DB函数f_getrowlock_iv(oc,item,shdt,fty,lp,inv) return varchar2
--sample code see below
create or replace function f_getrowlock_oc(oc varchar2,item varchar2,sd date)
return varchar2
is
findrow number(18,0);
returnv varchar2(1);
begin
findrow:=0;
returnv:='';
select count(*) into findrow
from oa_factory
where oc_number=oc and itemnumber=item and shipp_date=sd;
if (findrow>=1) then
returnv:='R';
else
returnv:='M';
end if;
return returnv;
end ;
//行锁函数f_getrowlock_oc应用到视图v_oc_detail代码
create or replace view v_oc_detail(
oc_number,
itemnumber,
shipdate,
ordercqty,
rowlock)
AS
SELECT
d.oc_number,
d.itemnumber,
d.shipp_date,
d.ordercqty,
f_getrowlock_oc(d.oc_number,d.itemnumber,d.shipp_date)
from oc_detail d;
--------------------------------------------------------------------
作业流程的按钮锁
查询数据时算出页面按钮(save,delete,print)权限(产品编号,订单号,采购单号,发票号)
工作流程的按钮锁函数(数据查询完毕之后调用它)返回值设定:(WD,W-,--,-D)W=保存,D=删除
0.调用事件(网页数据装载时调用Action call ejb)
//itembasic(save和delete按钮锁可用)
1.DAO函数String getbtnlock_item(item)
2.DB函数f_getbtnlock_item(item varchar2) return varchar2
//order confirm(save和delete按钮锁可用?)
1.DAO函数String getbtnlock_oc(oc)
2.DB函数f_getbtnlock_oc(oc varchar2) return varchar2
//oa(save和delete按钮锁可用?)
1.DAO函数String getbtnlock_oa(oc)
2.DB函数f_getbtnlock_oa(oc varchar2) return varchar2
//lp(save和delete按钮锁可用?)
1.DAO函数String getbtnlock_lp(lp)
2.DB函数f_getbtnlock_lp(lp varchar2) return varchar2
//iv(save和delete按钮锁可用?)
1.DAO函数String getbtnlock_iv(iv)
2.DB函数f_getbtnlock_iv(inv varchar2) return varchar2
--sample code see below
create or replace function f_getbtnlock_oc(oc_i varchar2) return varchar2
is
temp varchar2(2);
saveflag varchar2(1);
delflag varchar2(1);
eachrows oc_detail%ROWTYPE;
cursor cursor_row is select * from oc_detail where (oc_number = oc_i);
returnv varchar2(2);
begin
returnv:='--';
temp:='';
delflag:='D';
saveflag:='W';
--get delflag value
open cursor_row;
loop
fetch cursor_row into eachrows;
exit when cursor_row%notfound;
temp:=f_getrowlock_oc(eachrows.oc_number,eachrows.itemnumber,eachrows.shipp_date);
if (temp='R') then
delflag:='-';
exit;
end if;
end loop;
close cursor_row;
--get saveflag value
open cursor_row;
loop
fetch cursor_row into eachrows;
exit when cursor_row%notfound;
temp:=f_getrowlock_oc(eachrows.oc_number,eachrows.itemnumber,eachrows.shipp_date);
if (temp='R') then
saveflag:='-';
else
saveflag:='W';
exit;
end if;
end loop;
close cursor_row;
returnv:=saveflag||delflag;
return returnv;
end ;
--------------------------------------------------------------------
- 数据库应用系统权限控制-(行锁/按钮锁on java,php,aspx)
- 权限管理系统 页面权限粒度控制设计 GUID在数据库系统的应用
- Java Web应用权限控制
- php位运算的应用-权限控制
- 信息系统按钮权限控制
- 窗体按钮权限控制
- Java 实现系统权限控制思路
- Java 实现系统权限控制思路
- java自定义标签(改造spring security配合控制按钮权限)
- 权限系统--通过shiro进行按钮及页面访问url的权限控制
- 用cakephp快速开发php应用--用户及权限控制
- guns shiro按钮权限控制
- VUE前端按钮权限控制
- java权限权限控制
- mvc权限系统,使用aspx引擎
- 权限控制PHP
- 权限控制PHP
- PHP权限控制
- JqGrid—功能強大的jQuery Grid Control
- java解析xml 克隆xml
- 《Windows CE大排档》资源汇总
- 从Navicat for SQLite中导出一张表中的数据
- How to become an embedded software developer?
- 数据库应用系统权限控制-(行锁/按钮锁on java,php,aspx)
- 版面的附加元素
- splay的基本操作及相关例题 未完待续
- rcp(插件开发)如何打开help信息、动态帮助信息
- ASP.net积累
- HOJ 1447 Compromise (DP)
- HDU 2138 How many prime numbers
- G711 G723 G729线路占多少带宽问题
- Sqlserver 2008 局域网异机备份方法