知识大全 PB用户权限管理[1]
Posted 知
篇首语:等不到的晚安就别等了,挤不进的世界就别挤了。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 PB用户权限管理[1]相关的知识,希望对你有一定的参考价值。
PB用户权限管理[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
方案一 多用户 多用户方法
关于用户权限的问题 我认为这个问题在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所指示的窗口即可
cha138/Article/program/PB/201311/24628相关参考
实现业务系统中的用户权限管理设计篇 B/S系统中的权限比C/S中的更显的重要C/S系统因为具有特殊的客户端所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现而B/S中浏览器是每
Oracle用户权限表的管理方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 我们将通过介绍命
Spring框架下实现基于组的用户权限管理 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在几乎所有
目标假设wink系统有一个haishion用户我们有个开发人员neo和smith这个土人都需要可读可写还有一个oracle用户只能看 前提安装完cvsnt配置advanced里不选择usel
知识大全 Winform开发框架之权限管理系统改进的经验总结(2)-用户选择界面的设计
Winform开发框架之权限管理系统改进的经验总结(2)-用户选择界面的设计 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让
知识大全 PB中同时“继承”多个用户自定义数据窗口对象[1]
PB中同时“继承”多个用户自定义数据窗口对象[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&
解析:如何设置Sybase用户权限处理进程[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&n
使用EXCLUSIVE表示只有当前INSTANCE使用这个password文件而且允许有别的用户作为sysdba登录进系统里边而若选择了SHARED则表明不止一个实例使用这个密码文件伴随着一个很强
用户认证管理设计方案 设计思路 为了设计一套具有较强可扩展性的用户认证管理需要建立用户角色和权限等数据库表并且建立之间的关系具体实现如下 用户 用户仅仅是纯粹的用户用来
利用PB实现动态系统用户登录 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在多用户的大型数据库