![PB用户权限管理[1],第1张 PB用户权限管理[1],第1张](/aiimages/PB%E7%94%A8%E6%88%B7%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86%5B1%5D.png)
方案一 多用户 多用户方法
关于用户权限的问题 我认为这个问题在PB的开发中都可能遇到 各人有各自的解决方法 我以前也用过各种方法来实现 但是总体而言 安全性 方便性 灵活性等等方面考虑的话 下面的的方案是一种比较好的方案
以下就该方案做详细的说明
一 基本知识
现在主要的DBMS包括 ORACLE SQL Server Sybase Adaptive Server Microsoft SQL Server x x等 在这些DBMS中 都有自己完整的用户管理模式 一般都以下列方式进行
登录用户 主要用来提供连接到数据库服务的
角色用户 将登录用户划分为某些组 这些组拥有各种不同的数据库 *** 作权限 而一个登录用户可以扮演不同的角色
组管理 主要在Microsoft SQL Server x中 在 中已经采用ORACLE Sybase的用户管理方式
DBMS提供了这些用户管理的基本方式 并各自对表 视图 过程 触发器等有各自的审计及管理的方法 关于这些内容 请参考相关书籍
在实际的应用中 如果实际情况允许 可以对实际的所有用户建立一个登录用户(帐号) 并对所有的帐号进行严密的权限管理 但是 如果用户的数量是不固定的 而且可能有上百个 那管理的复杂程度及难度就可想而知了
所以 在一般的应用系统中 很少直接采用DBMS提供的用户管理模式而进行相关的扩充
二 实现方法
当前比较可行的方法的要点是
所有的实体(表 视图等等)都由一个登录用户建立(dbo) 但是该用户不拥有连接及 *** 作这些实体的权限(Insert Delete Update等等)
对所有的实际用户进行分类 归纳为几个具体的角色(实际角色)
一种实际角色对应一个登录用户 建立帐号系统 进行角色分配 权限设置
在Application中 某用户连接时 根据所扮演的实际角色 以对应的登录用户登录
根据对应表中对该用户的可用模块(功能) 进行适当处理 使用户只在定制的] 允许的范围内进行功能 *** 作及数据库 *** 作
根据以上几点 在一个具体的应用中 涉及到的开发工作包括
表设计
实际角色(组)分析
建立应用用户帐户表 该表记录了该用户所属的组 建立用户组表
建立一个通用连接用户(只能检索用户帐户表) 所有的应用用户初始都以该用户连接数据库 然后检索根据实际登录的用户及用户所属组 以该组对应的登录用户进行连接
建立模块(功能)表 建立用户 用户组与该表的对应表 即某用户到底能够进行什么样的 *** 作
功能设计
建立模块(功能)管理器 管理所有可用模块的相关信息
建立用户 用户组权限管理器 管理某用户(组)能够使用的功能
用户启动应用录时 将按照以下过程进行
○ 所有用户都以固定的连接用户进行初始连接
→ 用户输入自己的代码及口令 根据帐户表确认该用户
→ 得到该用户所属的组(即可以连接到数据库的登录用户名称)等信息
→ 重新连接到数据库 分配角色
→ 根据角色 进行数据分片(参考数据分片技术)
→ 检索该用户所属组及该用户可用的模块信息及布置 调整菜单或界面
● 打开主窗口 结束
方案二 单用户 多用户模式
所谓单用户 多用户模式 指数据库的登录用户模式 指所有应用都以统一的用户登录 该用户拥有所有表 视图 过程 函数等的所有 *** 作权限 而这些对象都被dbo所创建和拥有 可以将这些用户称为应用用户(存放在某表中) 而登录到数据库的这个用户即为模式用户 实际上 为了防止系统外数据登录 可增加一个联接用户 该用户只能读取一张表 该表记录了模式用户的登录参数(具体部分可以加密存放) 这种单 多用户方式在大型的mis系统中 由于其实现简单 思路清晰 所以应用是相当多的 单其优缺点是明显的
优点
■设置简单 特别是授权 可以比较轻松地实现
■管理简单 只要维护一个模式用户就可以了
■对开发人员是透明的 即开发用户以dbo方式登录就可以了
缺点
■比较危险 一旦该模式用户泄密 将造成巨大损失
■无法进行进一步的权限设置 因为不知道到底某应用用户到底具有那些权限
改进 (多用户 多用户方式)
可以按照实际业务系统的分类 划分为几个模式用户 如库房 给库房一个模式用户 财务 则给财务另外一个模式用户 这些模式用户对不同的对象拥有不同的权限 从而防止了破坏不相关的业务系统数据的可能
在实际的使用中 在登录时 可以根据该用户所在的部门进行相关的联接设置
方案三 通过菜单来控制用户权限 在PowerBuilder中 是不支持动态菜单的 一个菜单只能先做好 然后在程序中调用或修改它的属性 因此 对于动态菜单的实现 只能通过打开一个个窗口实例来实现 可以通过修改某菜单项的tag属性 在菜单项的clicked事件中打开该tag所指示的窗口即可
lishixinzhi/Article/program/PB/201311/24628
计算机中PB,1PB=1024TB,容量相当大,应用与大数据存储设备,如服务器等。
pb指petabyte,它是较高级的存储单位,其上还有EB,ZB,YB等单位。它等于1,125,899,906,842,624(2的50次方)字节,“大约”是一千个terabyte(实际上,准确地说是1024个terabyte,之所以说成1000个terabyte可能是为了更便于记忆)。
MB,全称MByte,计算机中的一个储存单位,含义是“兆字节”。
1MB可储存1024×1024=1048576字节(daoByte)。
字节(Byte)是存储容量基本单位,1字节(1Byte)由8个二进制位组成。
位(bit)是计算机存储信息的最小单位,二进制的一个“0”或一个“1”叫一位。
扩展资料
计算机存储信息的基本单位称存储元件,每个存储元件是一个二进制位,一位可存放一个二进制数0或1。每8位组成一个字节。由于8086CPU是16位数据总线,则其字长是16位,由2个字节组成。
在存储器内是以字节为单位来存储信息的,因而对存储器的编址是按字节编址,从而使CPU根据地址编号找到存储器中的 *** 作数或者说CPU根据地址编号访问该存储单元的内容地址从0开始编号,顺序地每个地址加1;
在计算机内地址也是用二进制数表示,地址是一个无符号整数,为了书写方便和编程,在源程序中常用十六进制数或符号来表示一个存储单元的地址。如1MB的地址范围若用二进制数和十六进制数表示如下
二进制数:0000 0000 0000 0000 0000B——1111 1111 1111 1111 1111B
十六进制数:0 0 0 0 0H——F F F F FH
8086/8088CPU有20根地址线,其最大寻址范围是1MB的空间。
参考资料:
数据窗口是可视的,数据窗口对象是不可视,是抽象的 数据窗口对象在pb开发程序面板上设计好(也可以动态生成),做好后要在检索的数据窗口去绑定,也可以在程序运行时动态改变,比如dw_1dataobject=‘d_1',d_1就是窗口对象,这样d_1这个数据窗口对象就与数据窗口dw_1相关联 检索数据时就先要把数据窗口加入事务变量,就可以检索了,例: dw_1settransobject(sqlca) dw_1retrieve() 这样你在数据窗口对象d_1中的数据就被检索出来放到数据窗口dw_1中显示出来了 希望能帮助到你
以上就是关于PB用户权限管理[1]全部的内容,包括:PB用户权限管理[1]、计算机中PB是什么意思、实现自适应窗口的用户对象 pb autoResize,该怎么解决等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)