多用户权限和数据管理
![](/icons/48114de.gif)
![](/icons/48114yi.gif)
种思路方法
1.引言 信息系统实现过程中经常遇到这样
![](/icons/48114de.gif)
情况:
![](/icons/48114yi.gif)
个信息系统有很多组、多个
![](/icons/48114de.gif)
用户
![](/icons/48114dou.gif)
而且各组用户具有
![](/icons/48114de.gif)
权限、所使用
![](/icons/48114de.gif)
数据都不相同
![](/icons/48114dou2.gif)
比如
![](/icons/48114dou.gif)
![](/icons/48114yi.gif)
个学籍管理信息系统中
![](/icons/48114dou.gif)
如果要实现学生学习成绩
![](/icons/48114de.gif)
发布和查询
![](/icons/48114de.gif)
话
![](/icons/48114dou.gif)
应该针对区别
![](/icons/48114de.gif)
学生提供个人
![](/icons/48114de.gif)
成绩
![](/icons/48114dou.gif)
然而由于学生人数很多
![](/icons/48114dou.gif)
许多系统在实现成绩查询时并不针对某
![](/icons/48114yi.gif)
个学生进行
![](/icons/48114dou.gif)
而是输出所有
![](/icons/48114de.gif)
学生
![](/icons/48114de.gif)
成绩
![](/icons/48114dou2.gif)
在成绩查询这个例子中这个问题体现
![](/icons/48114de.gif)
不是很明显
![](/icons/48114dou.gif)
但如果考虑学生在网上录入自己
![](/icons/48114de.gif)
选课情况
![](/icons/48114de.gif)
话
![](/icons/48114dou.gif)
这种方式就会出现
![](/icons/48114yi.gif)
些问题
![](/icons/48114dou2.gif)
比如
![](/icons/48114dou.gif)
![](/icons/48114yi.gif)
些人可能恶意修改他人信息
![](/icons/48114dou2.gif)
因此需要对这
![](/icons/48114yi.gif)
情况进行研究
![](/icons/48114dou2.gif)
2.多用户
![](/icons/48114de.gif)
安全验证 为实现用户
![](/icons/48114de.gif)
验证
![](/icons/48114dou.gif)
这种查询/编辑需要验证客户是否为合理
![](/icons/48114de.gif)
用户
![](/icons/48114dou.gif)
需要在客户端输入用户名称以及相应
![](/icons/48114de.gif)
密码
![](/icons/48114dou.gif)
然后在数据库端进行验证
![](/icons/48114dou2.gif)
对于通过身份验证
![](/icons/48114de.gif)
用户返回其所要求
![](/icons/48114de.gif)
数据
![](/icons/48114dou2.gif)
实现用户查询自己信息
![](/icons/48114de.gif)
方式通常情况下是在客户端
![](/icons/48114de.gif)
数据连接组件中进行限定
![](/icons/48114dou.gif)
如果客户端为学生
![](/icons/48114dou.gif)
他要查询相应
![](/icons/48114de.gif)
课程成绩
![](/icons/48114dou.gif)
则在客户端完成课程成绩
![](/icons/48114de.gif)
SQL语句
![](/icons/48114de.gif)
装配
![](/icons/48114dou.gif)
自动生成类似“select * from 课程成绩 where 学号=’Xuehao’”(其中Xuehao是客户端登录或者获取数据时提供
![](/icons/48114de.gif)
数据) 实现用户
![](/icons/48114de.gif)
验证
![](/icons/48114dou.gif)
对于大型数据库来讲是连接数据库获取数据必须
![](/icons/48114de.gif)
![](/icons/48114yi.gif)
个步骤
![](/icons/48114dou2.gif)
传统方式是对区别
![](/icons/48114de.gif)
用户建立区别
![](/icons/48114de.gif)
用户帐号
![](/icons/48114dou.gif)
并为他们分配适当
![](/icons/48114de.gif)
权限
![](/icons/48114dou2.gif)
而在多用户类型、多用户量
![](/icons/48114de.gif)
情况下
![](/icons/48114dou.gif)
针对每
![](/icons/48114yi.gif)
个用户建立
![](/icons/48114yi.gif)
个帐号将涉及到很大
![](/icons/48114de.gif)
工作量:包括登录名称
![](/icons/48114dou.gif)
数据库用户
![](/icons/48114de.gif)
建立
![](/icons/48114dou.gif)
权限
![](/icons/48114de.gif)
分配
![](/icons/48114dou.gif)
因此通常
![](/icons/48114de.gif)
方式是
![](/icons/48114dou.gif)
利用数据库所提供
![](/icons/48114de.gif)
角色
![](/icons/48114de.gif)
概念
![](/icons/48114dou.gif)
针对区别
![](/icons/48114de.gif)
用户类型建立区别
![](/icons/48114de.gif)
角色
![](/icons/48114dou.gif)
将区别
![](/icons/48114de.gif)
用户赋予相应
![](/icons/48114de.gif)
角色
![](/icons/48114dou.gif)
从而减少用户
![](/icons/48114de.gif)
权限分配管理
![](/icons/48114dou.gif)
但这样仍然不能减少用户管理
![](/icons/48114de.gif)
工作量
![](/icons/48114dou2.gif)
对于学生成绩管理系统来讲
![](/icons/48114dou.gif)
每年都有新生入学
![](/icons/48114dou.gif)
需要创建数据库用户
![](/icons/48114dou.gif)
同时又有学生毕业需要删除他们相应
![](/icons/48114de.gif)
数据库用户
![](/icons/48114dou2.gif)
这样维护数据库
![](/icons/48114de.gif)
工作
![](/icons/48114dou.gif)
虽然可以通过计算机
![](/icons/48114chengxu.gif)
进行
![](/icons/48114dou.gif)
但是用户管理
![](/icons/48114de.gif)
操作相对于表格
![](/icons/48114de.gif)
数据操作
![](/icons/48114dou.gif)
费时费力
![](/icons/48114dou2.gif)
针对这种情况
![](/icons/48114dou.gif)
通常
![](/icons/48114de.gif)
办法是将用户不真正建立数据库用户
![](/icons/48114dou.gif)
而是建立表格“用户表”
![](/icons/48114dou.gif)
在表中存储其所属
![](/icons/48114de.gif)
角色
![](/icons/48114dou.gif)
即相应
![](/icons/48114de.gif)
权限
![](/icons/48114dou2.gif)
这样对用户
![](/icons/48114de.gif)
维护就转变成对表格数据
![](/icons/48114de.gif)
维护
![](/icons/48114dou.gif)
即方便
![](/icons/48114chengxu.gif)
![](/icons/48114de.gif)
实现
![](/icons/48114dou.gif)
又给用户以熟悉感
![](/icons/48114dou2.gif)
当然这样
![](/icons/48114de.gif)
管理需要结合存储过程来实现
![](/icons/48114dou2.gif)
为实现用户
![](/icons/48114de.gif)
验证
![](/icons/48114dou.gif)
这种查询/编辑需要验证客户是否为合理
![](/icons/48114de.gif)
用户
![](/icons/48114dou.gif)
需要在客户端输入用户名称以及相应
![](/icons/48114de.gif)
密码
![](/icons/48114dou.gif)
然后在数据库端进行验证
![](/icons/48114dou2.gif)
对于通过身份验证
![](/icons/48114de.gif)
用户返回其所要求
![](/icons/48114de.gif)
数据
![](/icons/48114dou2.gif)
实现用户查询自己信息
![](/icons/48114de.gif)
方式通常情况下是在客户端
![](/icons/48114de.gif)
数据连接组件中进行限定
![](/icons/48114dou.gif)
如果客户端为学生
![](/icons/48114dou.gif)
他要查询相应
![](/icons/48114de.gif)
课程成绩
![](/icons/48114dou.gif)
则在客户端完成课程成绩
![](/icons/48114de.gif)
SQL语句
![](/icons/48114de.gif)
装配
![](/icons/48114dou.gif)
自动生成类似“select * from 课程成绩 where 学号=’Xuehao’”(其中Xuehao是客户端登录或者获取数据时提供
![](/icons/48114de.gif)
数据) 实现用户
![](/icons/48114de.gif)
验证
![](/icons/48114dou.gif)
对于大型数据库来讲是连接数据库获取数据必须
![](/icons/48114de.gif)
![](/icons/48114yi.gif)
个步骤
![](/icons/48114dou2.gif)
传统方式是对区别
![](/icons/48114de.gif)
用户建立区别
![](/icons/48114de.gif)
用户帐号
![](/icons/48114dou.gif)
并为他们分配适当
![](/icons/48114de.gif)
权限
![](/icons/48114dou2.gif)
而在多用户类型、多用户量
![](/icons/48114de.gif)
情况下
![](/icons/48114dou.gif)
针对每
![](/icons/48114yi.gif)
个用户建立
![](/icons/48114yi.gif)
个帐号将涉及到很大
![](/icons/48114de.gif)
工作量:包括登录名称
![](/icons/48114dou.gif)
数据库用户
![](/icons/48114de.gif)
建立
![](/icons/48114dou.gif)
权限
![](/icons/48114de.gif)
分配
![](/icons/48114dou.gif)
因此通常
![](/icons/48114de.gif)
方式是
![](/icons/48114dou.gif)
利用数据库所提供
![](/icons/48114de.gif)
角色
![](/icons/48114de.gif)
概念
![](/icons/48114dou.gif)
针对区别
![](/icons/48114de.gif)
用户类型建立区别
![](/icons/48114de.gif)
角色
![](/icons/48114dou.gif)
将区别
![](/icons/48114de.gif)
用户赋予相应
![](/icons/48114de.gif)
角色
![](/icons/48114dou.gif)
从而减少用户
![](/icons/48114de.gif)
权限分配管理
![](/icons/48114dou.gif)
但这样仍然不能减少用户管理
![](/icons/48114de.gif)
工作量
![](/icons/48114dou2.gif)
对于学生成绩管理系统来讲
![](/icons/48114dou.gif)
每年都有新生入学
![](/icons/48114dou.gif)
需要创建数据库用户
![](/icons/48114dou.gif)
同时又有学生毕业需要删除他们相应
![](/icons/48114de.gif)
数据库用户
![](/icons/48114dou2.gif)
这样维护数据库
![](/icons/48114de.gif)
工作
![](/icons/48114dou.gif)
虽然可以通过计算机
![](/icons/48114chengxu.gif)
进行
![](/icons/48114dou.gif)
但是用户管理
![](/icons/48114de.gif)
操作相对于表格
![](/icons/48114de.gif)
数据操作
![](/icons/48114dou.gif)
费时费力
![](/icons/48114dou2.gif)
针对这种情况
![](/icons/48114dou.gif)
通常
![](/icons/48114de.gif)
办法是将用户不真正建立数据库用户
![](/icons/48114dou.gif)
而是建立表格“用户表”
![](/icons/48114dou.gif)
在表中存储其所属
![](/icons/48114de.gif)
角色
![](/icons/48114dou.gif)
即相应
![](/icons/48114de.gif)
权限
![](/icons/48114dou2.gif)
这样对用户
![](/icons/48114de.gif)
维护就转变成对表格数据
![](/icons/48114de.gif)
维护
![](/icons/48114dou.gif)
即方便
![](/icons/48114chengxu.gif)
![](/icons/48114de.gif)
实现
![](/icons/48114dou.gif)
又给用户以熟悉感
![](/icons/48114dou2.gif)
当然这样
![](/icons/48114de.gif)
管理需要结合存储过程来实现
![](/icons/48114dou2.gif)
但是这种将限制语句放在客户端来进行
![](/icons/48114de.gif)
思路方法有如下
![](/icons/48114de.gif)
不足:如果
![](/icons/48114yi.gif)
个知道用户名称和密码
![](/icons/48114de.gif)
用户
![](/icons/48114dou.gif)
构造了
![](/icons/48114yi.gif)
个客户端
![](/icons/48114dou.gif)
而在这个客户端中
![](/icons/48114dou.gif)
他并不限制了查询修改数据
![](/icons/48114de.gif)
范围
![](/icons/48114dou.gif)
这样他就可以对可以访问
![](/icons/48114de.gif)
表格
![](/icons/48114de.gif)
所有数据进行操作
![](/icons/48114dou.gif)
而不再仅仅是他所被赋予
![](/icons/48114de.gif)
范围
![](/icons/48114dou2.gif)
因此
![](/icons/48114dou.gif)
更好
![](/icons/48114de.gif)
方式是将数据
![](/icons/48114de.gif)
限制放在数据库上进行
![](/icons/48114dou.gif)
这样
![](/icons/48114dou.gif)
即使是获取了
![](/icons/48114yi.gif)
个用户名称、密码
![](/icons/48114de.gif)
用户也仅仅能对原用户相关
![](/icons/48114de.gif)
数据进行查询、修改
![](/icons/48114dou.gif)
从而在
![](/icons/48114yi.gif)
定程度上提高了数据
![](/icons/48114de.gif)
安全性
延伸阅读
最新评论