系统权限管理策略

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

引言
数据库系统开发人员在多用户系统的设计阶 段必然会面临一个抉择,即以什么样的策略来 解决多用户源自文库限管理问题以及如何使得权限管理 更直观、更方便。本文讨论了 D B M S 常规的权 限控制方法,并深入探讨了使用客户端授权来 实现多用户系统权限管理的策略。
1,数据库层授权——角色
当今流行的 D B M S 都支持角色的概念,角色 提供一种解决方案,可以把用户汇集成一个单 元,以便进行许可管理,如 S Q L S e r v e r 提供 了用于通常管理工作的预定义服务器角色和数据 库角色,以便简化对某一个用户授予一些管理 许可的工作。
图 2 权限组、权限定义表、用户表 每个 A c t i o n 分别以 n a m e 属性来标识,
Action 具有 Enabled 和 Visible 属性,表示该对象 是否可用、是否可见。最后将各 Action 的 name 和 Caption 记录进 RIGHTDEF 表的 ActionName 和 ActionCaption 列,并以 ActionEnabled 记录是 否允许点击,以 ActionVisible 记录是否可见。
那么像这样类似纯面向功能模块的需求,利 用 D B M S 的“角色”来解决有较大难度,并且在 权限分配的易用性和直观性上有较大的缺陷。
3,解决方案——客户端授权
解决此类需求,可以采用客户端授权的方 法来实现,即在客户端控制功能模块是否可显或 是否允许点击等,而这些针对不同用户的权限信 息则存储在远程数据库服务器中,利于多用户权 限的统一管理。
用户还可以创建自己的数据库角色,即用户自 定义数据库角色,以便表示企业中的同一类雇 员所执行的工作。当雇员改变工作位置时,只 需简单地把其作为该角色的成员。如果该雇员 从该工作位置调走,那么可以简单地把其从该 角色中删除。利用该功能,我们可以创建所需 要的各类角色对象,给各类不同的角色对象赋 予不同的权限,如对某部分表只有 S E L E C T 的 权限、对某张表不能作 D E L E T E 操作、对某张 表的某些列只有 S E L E C T 权限但没有 U P D A T E 权限等,见图 1 。
1 ,数据岛技术
1 . 1 、数据岛 数据岛就是被 H T M L 页面引用或包含的 X M L 数据。当 X M L 格式的数据发送到客户 后,数据计算不需要回到服务器就能进行。在 不刷新页面的情况下用户可以进行数据排序、 筛选、计算等,极大地减轻了服务器的负担, 提高了用户的浏览速度,提高了数据的互动性 能,也使页面变得更加绚丽多彩。 1 . 2 、数据引入数据岛 X M L 格式的数据可以嵌在 H T M L 文件中, 可以是一个单独的 X M L 数据文件,还可以是 由动态页生成的 X M L 格式数据。对 H T M L 中 的 X M L 格式数据必须定义在标记< X M L > 和< / X M L > 之间,并且设计标记 I D 属性值以备调 用。对 H T M L 外部的 X M L 数据引用,是通 过在 H T M L 中设置< X M L > 标记的 S R C 属性来 引用外部 X M L 格式数据的。S R C 属性可以引 用本地的 X M L 文件,可以指定一个 U R L ,还 可以引用动态页生成的 X M L 数据。 例如用 S R C 属性引用本地的一个 X S C J . X M L 文件,其标记定义如下: <XML ID="IDName" SRC="XSCJ.XML"> < / X M L > 。文件 X S C J . X M L 里含有 X M L 数据。 引用一个远程服务器上名为 XMLData.XML 的 X M L 文件其标记定义如下: <XML ID="IDName" SRC="http://www. qjm..cn/xml/XSCJ.XML"></XML> 。 引用一个名为 XMLData.asp 动态页动态生 成的 X M L 数据其标记定义如下: <XML ID="IDName" SRC="XMLData. asp"></XML> 。数据可以由动态页从服务器的 数据库获取,生成 X M L 格式的数据后传送到 客户端。这样 H T M L 文件就能动态调用数据库 的数据了。 1 . 3 、读取数据岛的数据 从数据岛读取数据是利用< X M L >元素的 I D 属性来完成的。通过能够接收数据的 H T M L 标 记来接收和显示数据。常用的标记有:标记
(下转第 6 7 页)
-66-
科 技 论 坛
中国科技信息 2005 年第 18 期 CHINA SCIENCE AND TECHNOLOGY INFORMATION Sep.2005
H T M L 文件动态调用数据库的数据
HTML File Transfers the Date of the Database Dynamically 秦久明 扬州工业职业技术学院 225007
假设在某应用中有若干子系统,各子系统 包含若干项功能模块,并以菜单的形式来组织 这些功能模块,现在该应用系统有若干操作 员,他们具有各不相同的权限,即以不同的操 作员名称和密码登录系统后,允许执行的模块 在菜单上可以点击,不允许访问的模块在菜单 上不可点击(d i s a b l e )甚至该菜单项不可见 (invisible),如果更细一步,要控制到某个窗体的 某个按钮或其它控件的enable或visible属性。
当 A c t i o n L i s t 建立以后,每个菜单项的 Action 属性就可指定为刚才定义的 ActionList 的 某一个 A c t i o n 了,利用它即可调用对应的功能 模块。至于该菜单项是否可点击或可见,完全 由该 Action 的 Enabled 和 Visible 属性来决定。
当然,最后要解决“控制到某个窗体的某个按 钮或其它控件的enable或visible属性”,也需要靠 TactionList 来实现,原理相同,不再详述。
4 ,程序实现
程序代码部分要解决的问题主要有两个: ①、如何生成权限定义表 RIGHTDEF 各条记 录以存储系统现有各功能模块。 为了自动化生成权限定义表内容,需要遍历 ActionList 对象的各成员,自动取得各个 Action 的 name 和 caption,并将之存入 RIGHTDEF 表 中,具体代码片断见图 3 。 图 3 自动生成 R I G H T D E F 表记录
前 言
如今网上信息量越来越大,信息更新速度 越来越快,为便于有效管理这些信息,通常将 信息数据放在数据库中,客户要获取的这些动 态信息,需通过数据库服务器来处理,并将处 理好的信息传送到客户端。但这有一个问题, 当客户量很大,并且频繁地点击访问数据时, 不但服务器的负担很重,而且也严重地影响了 用户的浏览速度。那如何提高数据的访问效率 呢?解决这一问题的方法较多,使用 X M L 的 数据岛技术是一个不错的选择。
SQL Server 的服务器角色提供了组合服务器 级的管理员权限,这些角色可以在服务器上进 行管理,独立于用户的数据库,如 dbcreator 角 色可以创建和修改数据库。SQL Server 预定义 的 10 种数据库角色提供了组合数据库级管理员权 限的方法,如 Db_datawriter 角色可以对全部表 中的数据进行增加、修改或者删除, Db_denydatareader 角色不能阅读任意一个表中的 数据等。
首先在数据库服务器上创建以下三张表,见 图 2。
R I G H T G R O U P :权限组表,用于存储各 权限组,以 RIGHTGROUPID 来区分每一权限组, 在该字段上建立 Primary key 约束。
R I G H T D E F :权限定义表,用于存储各功 能模块的访问权限,以 R I G H T G R O U P I D 标示出 该权限定义属于哪一权限组,在该字段上创建 F O R E I G N K E Y 约束,与 R I G H T G R O U P 表建 立如图所示一对多的关系,以保证数据的完整性。
U S E R D E F :用户表,用于存储系统操作 用户的相关信息,如用户名、密码等,在 USERID 列创建 P R I M A R Y K E Y 约束,以唯一标识每一 个用户,在 R I G H T G R O U P I D 字段上创建 F O R E I G N K E Y 约束,与 R I G H T G R O U P 表建 立如图所示一对多的关系。这样,只要将某用 户加入某个权限组,该用户就具有了该权限组 所规定的访问权限了,也即为该 U S E R I D 赋予 相应的一个 R I G H T G R O U P I D 即可。
以上三张表的结构及其相互关系基本上已经 确定了权限分配策略的框架,最后需要解决的问题 是如何将每个功能模块对应进 R I G H T D E F 表中, 以及如何标示出该项功能为可见或可以访问。
现以 D E L P H I 作为客户端开发工具为例作一 说明,在 DELPHI 中有一 TactionList 控件,用 于维护一个 Action 列表。列表的每一个 item 属 于 T a c t o n 类,它对应系统的每个功能模块,我 们在它的 OnExecute 事件中实现功能代码。
摘 要:本文通过 H T M L 文件动态调用数据库中数据的实例,阐述了利用 A S P 调用数据库的数据,并格式化为标准的 X M L 文件,再通过数据岛技术, 实现 H T M L 文件动态调用数据的方法。 关键词:X M L ;数据岛;动态调用 Abstract: After transferring the instance of the data in the database dynamically through HTML file, this paper analyzes how to transfer the data in the database by means of ASP and form standard XML file. This paper also explains realizing the way to transfer the data dynamically by using the technology of the data island. Keywords: XML; Data island; Transfer dynamically
摘 要:对多用户应用系统设计与开发过程中权限分配与管理方法进行了讨论,着重描述了如何实现功能强大而又易用的用户权限管理系统,以保 证不同的登录用户对应用系统各功能模块具有不同的操作权限。 关键词:权限;权限组;权限控制 Abstract: Having discussed right assignment and managemt in design and development of multi-user appliction,this text describes how to implement a powerful and easily use management system about user right. Keys words: right;right group;right control
科 技 论 坛
中国科技信息 2005 年第 18 期 CHINA SCIENCE AND TECHNOLOGY INFORMATION Sep.2005
系统权限管理策略
The Strategy of Right Management
温一军 沙洲职业工学院 215600 Wen Yi-jun (Shazhou Polytechnical Institute of Technology)
图 1 创建数据库角色“操作员” 在创建好自己的数据库角色以后,我们可 以将事先创建好的用户添加进相应的数据库角色
中,正是利用“角色”这样的对象,我们实 现了不同的用户对不同的数据库对象具有不同的 操作权限,这种授权属于数据库层级的授权机 制,也是最底层的访问控制方式。
2 ,问题提出
D B M S 提供的角色确实提供了足够的安全机 制,可以控制对表甚至对列的访问,但是在某些 具体应用中并不需要数据库层这种最底层的授权 控制。
相关文档
最新文档