VD30论坛(八)安全控管(下)
VD30论坛(八)安全控管(下)
==================================================================================
随着企业的MIS系统进入3-Tier的时代, 甚至可以让员工在家 或是任何有Internet的地方可
以使用企业资讯的系统, 如此将企业的资讯暴露在任何的外点, 恐怕是多数企业担心与不能接受
的一个重要因素, 因此, 3-Tier系统在数据安全的控管上就变成一个非常重要的课题, 在前面论
坛中我们已经对功能性的安全控管提出了解决方案, 在此我们针对更多数据保全的目的做更深入
的介绍.
ROW SECURITY,即代表要控管数据表(Table)的存取权利, 在一般数据库系统其实也有这个功能,
但是也只能针对数据库用户存取那个Table来作为设定依据, 无法控管到每一笔数据的存取权限,
除此之外, 因为VD3是3-Tier的系统, 都是以A/P Server来代理所有Client的Login与存取数据库,
这也是无法使用数据库的安全控管机制的主因. 在VD3中, 我们是以SQuery作为每个Client的读取
权限来控管数据安全, 主要由SecurityStyle与DeptControl来控制安全管理的机制,如下:
SecurityStyle控管模式
------------------------
此模式是比较细腻的一种控管方式, 主要透过SQuery元件中的SecurityStyle,SecFieldName与
SecExcept等属性来控制, 如下说明:
1.安全模式(SecurityStyle): 用来控制数据的安全模式.
(0)ssNone(不启动): 本SQuery不作数据安全控管, 就是任何角色都可以查询所有数据.
(1)ssRoles(依角色): 就是所有归属该使用者相对的角色数据都可以存取, 系统会自动为你加
上 Where 角色栏位 IN (该USER的角色..), 使用IN不使用等于是因为以GETROLE登入的USER
可能有多个对应角色. 须注意在数据表一定有一个栏位记录着数据归属角色为何,此栏位定义
于SecFieldName中.
(2)ssRoleGroup(依角色群): 就是所有归属该使用者相对的角色群数据都可以存取, 系统会自
动为你加上 Where 角色群栏位 IN (该USER角色群..), 使用IN不使用等于是因为GETROLE登
入的USER可能有多个对应角色群. 同样的在数据表一定有一个栏位记录着数据归属角色群为
何, 定义于SecFieldName中.