192分请您发表高见---关于权限设置.

ROBOT 2000-06-10 10:10:00
加精
有一MIS项目,要求是纯B/S 模式, 采用InterDEV+SQL Server的方式,如何设置权限和管理系统的安全性最好?
...全文
402 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
DBSong 2000-08-10
  • 打赏
  • 举报
回复
关注
ROBOT 2000-08-02
  • 打赏
  • 举报
回复
请教popoli:
在您所说的权限中,您认为在对表的权限分配中,是独立使用SQL SERVER的权限分配好,还是SQL SERVER 同WINNT一起好.
如果是SQL SERVER 同WINNT结合对数据库进行权限分配,又该如何在程序中对用户进行认证?
w102272 2000-07-26
  • 打赏
  • 举报
回复
Sorry, hblinux,没有更详细的资料了,这个其实是从我的项目设计中摘录的,
从脑袋里头抓出来的。
其实权限管理一直是很麻烦的事情,我们原来也是出于无奈要自己设计。对于这个权限管理其实模型都类似。但是在实现的时候最麻烦的还不是实现,而是保证实现的同时如何照顾程序执行效率和使用的方便性。
向刚才各位提的方案,无论是采用SQL SERVER内部权限,还是直接利用NT的权限和用户管理都更方便些。
对于权限管理,其实做得最好的是LOTUS NOTES,你可以看看它的文档,它的安全共有七层。可以一直管理到表单上的域,而且可以在上面写验证程序,做得确实非常非常好。
华南虎哥 2000-07-26
  • 打赏
  • 举报
回复
w102272:你说得这么详细,能不能寄点这方面的资料给我看看,hblinux@163.net
chenwenlong 2000-07-25
  • 打赏
  • 举报
回复
你只有用NT的集成验证才行。
或建立认证中心
虎叔 2000-07-25
  • 打赏
  • 举报
回复
你可以安装Certficate Server。使用Option pack 提供的公共钥匙和私人钥匙系统。对用户数据进行加密。(SSL)
对于用户身份的认证可以使用数字签名和数字信封进行确认。
ROBOT 2000-07-25
  • 打赏
  • 举报
回复
Robber:
在ASP中,取不到用户的密码,如何进行签字。
xuming 2000-07-25
  • 打赏
  • 举报
回复
对于你的要求,在IIS中设置:属性—目录安全性—验证方法,将:“允许匿名访问”改为—“WindowsNT 挑战/反应”即可。
ROBOT 2000-07-24
  • 打赏
  • 举报
回复
不好意思,很长的一段时间不知为什么不能上这一个网站,所以对大家的热心指导既不能给分,也不能参与讨论。

我觉得用WINNT和IIS控制是一个非常正确的方法,但似乎对用户的控制必须进行WINNT的用户管理,能不能直接使用什么方法在ASP中进行控制?还有一个问题是如果是几个人上一台计算机,安全性就不能进行具体到人进行控制了?如果用户的密码进行签字?
w102272 2000-06-19
  • 打赏
  • 举报
回复
对于外部的权限,可以直接使用Sql Server7的用户管理功能,设置一个nt组,例如database,然后进行控制。
对于内部的权限,比较通用的办法一般是要进行定义。
想象一个三维坐标,
X代表了能够访问资源的所有用户,注意这个用户不是实际的内部注册用户,
而应该是用户身份或者群组,象popoli说的那样。定义了群组或者身份后,
将注册的用户分配到身份或者群组。

Y代表了所有能够被存取的资源,例如:程序模块,菜单项目,甚至是一个
FORM上的按钮,可见性,可按这些特性。
具体的划分细节取决于你希望控制的安全颗粒度。对于一般的MIS来说,
实现程序模块级别就可以了,再细分会很麻烦而且影响程序效率,不过
如果要控制,也是这个方法。另外,为了管理方便,你也可以将资源分组。

Z代表了对某种资源的存取权限,对于简单的MIS来说,就是可执行/不可执行。
对于数据来说,
在操作系统中,Z划分得比较细,一般可以划分为:
OWARE:owner,write,append,read,execute
一般的MIS,不要求管理到数据级别那么细,实际上你作一个程序的E权限就可以了。

有了这个模型后,你就有了三张表格,
一张是用户到群组的影射表,
一张是资源定义表。
最后一张是用户(群组/身份)到资源的访问控制表 (Access Control List)
就是很多系统经常说的访问控制表。
事实上,几乎所有的安全和身份认证机制都是这样实现的,无论NT、SYBASE或者其他系统。只是具体实现的时候,要考虑的问题相当多,需要加以简化。

对于你的MIS系统,可以考虑进行如下假设进行简化:
1、仅仅控制程序模块的执行权,这样可以简化权限定义。
2、仅仅在调度模块(例如菜单)处或者进行权限的检查。
ASP就是在被调用页面前进行权限检查,不做更深层次(一个BUTTON)等的控制。
3、如果内部用户很少,可以不定义群组/身份映射,这样更容易实现,缺点是不灵活了。

所以在普通的MIS系统中最差的只做固定口令认证,好一点的做模块/用户认证,再好一些的定义资源和用户群组,最麻烦的就是NT,SYBASE,SQLSERVER这样的用户管理。至于在具体认证的时候,可以采用数据库,这样会很方便。也可以采用在模块头写死为:(允许(管理员/领导。。。)访问,否则。。。这样,简化到这种程度,就非常简单了。)
按照上面的模型简化,越简化越容易实现,但是越不灵活,反之越灵活,使用方便但是程序实现和执行效率越低,需要按照你的项目的实际情况进行考虑。

一般认为,对于资源不要定义分组控制,对人员可以进行分组控制,这是因为对于一个MIS系统,考虑某个按钮可按不可按,一般是没有必要的,除非在一些要求很高的系统中;但是对人员分组的明显好处是,可以对身份授权而不是对人授权,明显适用于一些机构中,某些领导同时拥有几个部门的业务管理权,或者适用于人员调动或者职权变化后,非常灵活地调整对系统的访问权限。

最后要说明的是,安全管理和访问控制需要结合多层机制来实现,NT,IIS,DB,APPlication,别忘记了最后一招是将数据加密。
原则是不要在应用程序级别去实现操作系统实现的东西,没有必要。

基本上内部权限管理,就是这样实现的。
popoli 2000-06-18
  • 打赏
  • 举报
回复
我说的第二点的意思是:你可以设计一个树型权限结构,把每个用户的权限等级存入数据库,
比如:你设定了三层权限等级,①系统管理员②模块管理员③一般用户,那麽①可以指定②的成员有哪些②可以指定③的成员有哪些.(①、②、③首先必须是NT用户)
ROBOT 2000-06-14
  • 打赏
  • 举报
回复
请教popoli:
我不知道您的第二点是应该如何的去实现. 用户要求权限划分得很详细,不但要限制外来人员的访问,也对内部人员进行详细的权限设置.这用SQL SERVER来完成需要做哪些事情?
popoli 2000-06-11
  • 打赏
  • 举报
回复
我做过的B/S结构的项目是这样处理的:
一:用NT的权限作为第一层权限(即根据登录的用户不同出现的模块部分不同).
二:定制一个分级权限,存储于数据库中,限制模块与人员(或部门)之间的使用权限.
三:严格设置IIS的访问权限(不可匿名访问)
四:把设置数据库的password与username的代码写成com
五:把重要文件的访问建立日志
六:用SQL Server的权限设置
hcat1999 2000-06-11
  • 打赏
  • 举报
回复
最好在加上MTS,这样一些重要的数据可以放到DLL程序中,即使别人知道了ASP源码,也看不到如username和 password之类的数据
ROBOT 2000-06-11
  • 打赏
  • 举报
回复
我想用SQL Server的权限设置应该是比较安全的一种方法,也就是用ROLE来进行控制,但不知道如何将权限用ASP进行详细划分,控制。
rongxi 2000-06-10
  • 打赏
  • 举报
回复
仅说一下我自己的观点:
一 没有绝对安全的程序,只要是被惦记上,很难不被....
二 与其费劲的使用ASP设置权限不如使用SQL Server的权限设置,区分用户等级
三 实在想使用自己的程序,或使用大量的if then else 或在数据库中增加一个或几个烈
保存访问等级,这样可以将权限设置细化到每一条纪录

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧