- 浏览: 240055 次
- 性别:
- 来自: 上海
最新评论
-
weigeshikebi:
不得不赞一个
解惑 spring 嵌套事务 -
siemens800:
Mac OS X 10.7.2 的光盘还有挖,帅锅帮刻个盘发来 ...
MacBook 升级内存记 -
cry615:
帖子很不错,java里任何一个东西都是一门学问,很有很强的逻辑 ...
理解 Java 的 GC 与 幽灵引用 -
sharkka:
sogo1986 写道楼主举的例 ...
解惑 spring 嵌套事务 -
sogo1986:
楼主举的例子并没用体 ...
解惑 spring 嵌套事务
最近的项目需要做到列级权限控制, 大意如下
需求是 角色1 可对 attr1 进行读操作, 对 attr2 进行写操作, 而 角色2 对 attr1, attr2 都没有读权限.
目前考虑的方案 : 主要是在 ui 上控制, 如果没有读权限, 则显示空或无权限, 如果只有读权限, 则控制输入框为只读.
实现 : 建一张表用以纪录角色对 DomainObject 各属性的权限, 使用 webwork interceptor 拦截所有页面上的 ww 标签访问, 然后到配置表中查找权限信息, 如果查到匹配, 就将信息记录在一个集合中(类似 fieldError), 不妨称之为 fieldSecurityInfo, 最后更改标签模板, 根据 fieldSecurityInfo 中的信息做相应控制, 感觉大体可行.
目前的问题是 :
1. 如何拦截 <ww:> 标签的访问 ?
2. 只在 ui 上控制是否足够安全? 如果需要后台控制, 觉得难度工作量更大.
有做过类似需求的同学, 请不吝发言
我还真没听说过Oracle可以做到一个表中某几行可以由某人修改,另外几行又只能只读什么的,能说清楚点么?
基于行的安全控制,Oracle 早就做到了。http://www.oracle.com/technology/oramag/oracle/03-jul/o43security.html
这种方式对维护者就是恶梦啊。。。
我不认为复杂。和你建立权限表一样!可能更简单。
这里我把这个xml当成数据库。你把这个xml转化成表单是如此的容易。
我用xstreame上瘾了。先定义java对象,然后确定xml.
private class RoleMapping{
private String role;
private String tableName;
String[] fieldName;
Boolean[] isReaders;
Boolean[] isWriters;
............................
}
其实控制权限的就这一堆对象,初始化这个对象的是 需要 控制权限的表极其字段。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
不知道大家用过lotus domain开发过OA没有,它的字段控制和楼主的需求类似。
这种方式对维护者就是恶梦啊。。。
我还真没听说过Oracle可以做到一个表中某几行可以由某人修改,另外几行又只能只读什么的,能说清楚点么?
Oracle高级安全特性中有个"精细存取控制",这是我在<Oracle专家高级编程>中学得,并在实际项目中用到.
Oracle标准版是没有这个特性地!只有企业版的才有!当然标准版了可以通过一个小巧门可以做到.
比较有意思的东西!!!
需求是 角色1 可对 attr1 进行读操作, 对 attr2 进行写操作, 而 角色2 对 attr1, attr2 都没有读权限.
我到是不建议把这些放到web层处理,应该放到logic层。
public class Field{
private String name;
private Object value;
private type class;
private isRead;
private isWrite;
private String role;
}
public class DomainObject implment IDomain{
private Field attr1;
private Field attr2;
}
如果配置什么的看编程技巧了,我是把这些业务表的列都生成xml,角色和表列的关系也在xml中,启动web服务器时把没个角色 规则实例化成 一个java对象,如果修改角色,只要修改内存中java对象和xml就可以了。
经过实践,比放数据库中简单。
老兄,你从哪个星系过来的亚,我们有说到DS吗?
喔 ~ 我只是好奇問問.. 沒有挑釁的意思
因為 討論到 Access Control 的彈性與複雜性 最好還是以 Directory Server 有繼承性的關係會比在資料庫中容易的多..
老兄,你从哪个星系过来的亚,我们有说到DS吗?
我还真没听说过Oracle可以做到一个表中某几行可以由某人修改,另外几行又只能只读什么的,能说清楚点么?
回到楼主的问题:
1.为什么不采取安全标签来控制而要拦截 标签访问?
2.前台要控制,后台视安全要求了来决定,仅仅在一两个地方做权限的特殊控制问题不大,难的是整个权限系统设计通用,概念一致,简单,还要容易管理.
需求是 角色1 可对 attr1 进行读操作, 对 attr2 进行写操作, 而 角色2 对 attr1, attr2 都没有读权限.
這用 aop 的觀念實現一點都不難, 否則利用 SessionBean 設定 method-security 應該是最方便的.
........................................................................
另外, 在 directory server 應該有區分 ACL and ACI
aci 的範例
aci: (target=”“ldap:///$rootSuffix”)
(targetfilter=(!(objectclass=sunServiceComponent)))
(targetattr != “userPassword||passwordHistory
||passwordExpirationTime||passwordExpWarned||passwordRetryCount
||retryCountResetTime||accountUnlockTime||passwordAllowChangeTime”)
(version 3.0; acl “anonymous access rights”;
allow (read,search,compare)
userdn = “ldap:///anyone”; )
根據不同 target, 設定相關的 permissions ( allow/deny ) 以及相關人員,
ACL 在同一個 directoy entry 之中, 僅算是 ACI 的屬性, 通常應用在系統的存取權限控制上..
........................................................................
說真的. 我完全不知道為什麼 method security 會扯到 ACL .
ACL一般应用于用户数少(相对于权限)的场景,性能好是它的特点
RBAC一般应用于用户多,权限也多的场景,灵活是其主要解决的问题
最後, ACL 和 RBAC 也沒什麼直接的關係. ACI 可以設定 DN 為 Role...
"ACL一般应用于用户数少, RBAC一般应用于用户多" 真的是蠻奇怪的觀念的 ...
你們回帖的人 有使用過 DS 做過 Access Control 嗎 ?
ACL是什么东东?这么牛?我一直思考着基于列的权限控制,复杂度和效率一直是让我不敢着手和思考的原因。
我曾经做到过数据行的管理与控制,据说Oracle做到行与列的管理控制。
我曾经尝试想用ValueObject的原理去考量基于列的控制,自今也没有一个可以去实现的方案。
刚刚查了一下google, ACL 指Access Control List 。是否如楼上所说的?
你说了这么多, 跟我要做的列级权限控制有什么关系?
抱歉,有些跑题。
我有点印象,好像是前面有贴子提到不太了解ACL,因此多说了几句,呵呵。
public class DomainObject { private String attr1; private String attr2; }
需求是 角色1 可对 attr1 进行读操作, 对 attr2 进行写操作, 而 角色2 对 attr1, attr2 都没有读权限.
目前考虑的方案 : 主要是在 ui 上控制, 如果没有读权限, 则显示空或无权限, 如果只有读权限, 则控制输入框为只读.
实现 : 建一张表用以纪录角色对 DomainObject 各属性的权限, 使用 webwork interceptor 拦截所有页面上的 ww 标签访问, 然后到配置表中查找权限信息, 如果查到匹配, 就将信息记录在一个集合中(类似 fieldError), 不妨称之为 fieldSecurityInfo, 最后更改标签模板, 根据 fieldSecurityInfo 中的信息做相应控制, 感觉大体可行.
目前的问题是 :
1. 如何拦截 <ww:> 标签的访问 ?
2. 只在 ui 上控制是否足够安全? 如果需要后台控制, 觉得难度工作量更大.
有做过类似需求的同学, 请不吝发言
评论
23 楼
xgylog
2006-08-04
如果建权限表,个人感觉后台实现比较好,通过session bean 和自定义标签,一条sql即可完成,权限表实际起到字典的作用,不过最好给业务管理员留下管理功能,可以灵活的控制各个权限级别访问类型的变更和角色的增加。
22 楼
BirdGu
2006-07-19
ACL也好,RBCL也好,准确地说都属于访问控制的策略,而不是具体的实现方式。
21 楼
凤舞凰扬
2006-07-18
引用
我还真没听说过Oracle可以做到一个表中某几行可以由某人修改,另外几行又只能只读什么的,能说清楚点么?
引用
ACL一般应用于用户数少(相对于权限)的场景,性能好是它的特点
RBAC一般应用于用户多,权限也多的场景,灵活是其主要解决的问题
说大了,世界上权限控制方式只有两种,一种是控制单体数据(怎么叫都好,什么行数据,实例数据都可以),另外一种是控制数据集合的权限.ACL,RBAC和这种划分是没有冲突的.所谓的列数据控制,其实是控制数据集合权限的变形罢了. 在这上面糊涂的人,其实是没有搞清楚自己到底要控制什么罢了.在说明白点,就是上面说的控制数据attr,其实应该控制的是operation(business logic)
说实话,我的确不理解ACL从实现上对基于列的控制有什么作用,如果只是讨论所谓的概念,我也写得很清楚了http://forum.iteye.com/viewtopic.php?t=20586&postdays=0&postorder=asc&start=15。 就是基于ACL也好,基于RBAC也好,说到底只是权限控制的行为方式,而并非怎么去寻找一个更好的思路去实现基于行控制的行为。 如果要把基于属性的控制泛化为operation,基本就没得谈了。
RBAC一般应用于用户多,权限也多的场景,灵活是其主要解决的问题
说大了,世界上权限控制方式只有两种,一种是控制单体数据(怎么叫都好,什么行数据,实例数据都可以),另外一种是控制数据集合的权限.ACL,RBAC和这种划分是没有冲突的.所谓的列数据控制,其实是控制数据集合权限的变形罢了. 在这上面糊涂的人,其实是没有搞清楚自己到底要控制什么罢了.在说明白点,就是上面说的控制数据attr,其实应该控制的是operation(business logic)
引用
现在一般的Web应用,由于使用Connection Pool,一般数据库用户都使用的同一个。所以依赖数据库的访问控制机制是不行的。
普遍的,全面的属性级访问控制是否有必要?象ACEGI的话也只是支持对象级的访问控制。
那确实,在绝大多数情况,甚至列对象级的控制都是不需要的。不过既然谈到了这个问题,也就是存在了需求。普遍的,全面的属性级访问控制是否有必要?象ACEGI的话也只是支持对象级的访问控制。
20 楼
zkj_beyond
2006-07-16
独狼 写道
引用
如果配置什么的看编程技巧了,我是把这些业务表的列都生成xml,角色和表列的关系也在xml中,启动web服务器时把没个角色 规则实例化成 一个java对象,如果修改角色,只要修改内存中java对象和xml就可以了。
经过实践,比放数据库中简单。
经过实践,比放数据库中简单。
这种方式对维护者就是恶梦啊。。。
我不认为复杂。和你建立权限表一样!可能更简单。
这里我把这个xml当成数据库。你把这个xml转化成表单是如此的容易。
我用xstreame上瘾了。先定义java对象,然后确定xml.
private class RoleMapping{
private String role;
private String tableName;
String[] fieldName;
Boolean[] isReaders;
Boolean[] isWriters;
............................
}
其实控制权限的就这一堆对象,初始化这个对象的是 需要 控制权限的表极其字段。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
不知道大家用过lotus domain开发过OA没有,它的字段控制和楼主的需求类似。
19 楼
独狼
2006-07-15
引用
如果配置什么的看编程技巧了,我是把这些业务表的列都生成xml,角色和表列的关系也在xml中,启动web服务器时把没个角色 规则实例化成 一个java对象,如果修改角色,只要修改内存中java对象和xml就可以了。
经过实践,比放数据库中简单。
经过实践,比放数据库中简单。
这种方式对维护者就是恶梦啊。。。
18 楼
riss
2006-07-15
wolfsquare 写道
引用
这个都可以做到行级的访问控制了.
我还真没听说过Oracle可以做到一个表中某几行可以由某人修改,另外几行又只能只读什么的,能说清楚点么?
Oracle高级安全特性中有个"精细存取控制",这是我在<Oracle专家高级编程>中学得,并在实际项目中用到.
Oracle标准版是没有这个特性地!只有企业版的才有!当然标准版了可以通过一个小巧门可以做到.
比较有意思的东西!!!
17 楼
zkj_beyond
2006-07-15
Feiing 写道
public class DomainObject { private String attr1; private String attr2; }
需求是 角色1 可对 attr1 进行读操作, 对 attr2 进行写操作, 而 角色2 对 attr1, attr2 都没有读权限.
我到是不建议把这些放到web层处理,应该放到logic层。
public class Field{
private String name;
private Object value;
private type class;
private isRead;
private isWrite;
private String role;
}
public class DomainObject implment IDomain{
private Field attr1;
private Field attr2;
}
如果配置什么的看编程技巧了,我是把这些业务表的列都生成xml,角色和表列的关系也在xml中,启动web服务器时把没个角色 规则实例化成 一个java对象,如果修改角色,只要修改内存中java对象和xml就可以了。
经过实践,比放数据库中简单。
16 楼
wolfsquare
2006-07-15
DS也有适用场景的,在需要使用权限做大量过滤时候就只好抓瞎了,不如SQL连接来得干脆。
15 楼
jini
2006-07-15
wolfsquare 写道
引用
你們回帖的人 有使用過 DS 做過 Access Control 嗎 ?
老兄,你从哪个星系过来的亚,我们有说到DS吗?
喔 ~ 我只是好奇問問.. 沒有挑釁的意思
因為 討論到 Access Control 的彈性與複雜性 最好還是以 Directory Server 有繼承性的關係會比在資料庫中容易的多..
14 楼
BirdGu
2006-07-14
现在一般的Web应用,由于使用Connection Pool,一般数据库用户都使用的同一个。所以依赖数据库的访问控制机制是不行的。
普遍的,全面的属性级访问控制是否有必要?象ACEGI的话也只是支持对象级的访问控制。
普遍的,全面的属性级访问控制是否有必要?象ACEGI的话也只是支持对象级的访问控制。
13 楼
wolfsquare
2006-07-14
引用
你們回帖的人 有使用過 DS 做過 Access Control 嗎 ?
老兄,你从哪个星系过来的亚,我们有说到DS吗?
引用
这个都可以做到行级的访问控制了.
我还真没听说过Oracle可以做到一个表中某几行可以由某人修改,另外几行又只能只读什么的,能说清楚点么?
回到楼主的问题:
引用
1. 如何拦截 <ww:> 标签的访问 ?
2. 只在 ui 上控制是否足够安全? 如果需要后台控制, 觉得难度工作量更大.
2. 只在 ui 上控制是否足够安全? 如果需要后台控制, 觉得难度工作量更大.
1.为什么不采取安全标签来控制而要拦截 标签访问?
2.前台要控制,后台视安全要求了来决定,仅仅在一两个地方做权限的特殊控制问题不大,难的是整个权限系统设计通用,概念一致,简单,还要容易管理.
12 楼
riss
2006-07-14
我想这个问题解决本质依赖于数据库
如果使用的是ORACLE数据库考虑使用"精细访问控制"看可不可以,这也许比你的要求做的更好,至少在数据库级你是做不到随便查看,修改,和删除数据了,这得看你如何根据角色来制定策略了.说的对与不对只能作为参考.
我曾经做过这样的东西:根据用户角色,什么样角色可以访问数据库中的什么记录.什么样的角色可以对它进行修改,插入数据(这依赖数据库中指定的策略了).这个都可以做到行级的访问控制了.我目前只知道ORACLE可以做到.其他的不了解.SQL server应该不能这样!呵呵!
如果使用的是ORACLE数据库考虑使用"精细访问控制"看可不可以,这也许比你的要求做的更好,至少在数据库级你是做不到随便查看,修改,和删除数据了,这得看你如何根据角色来制定策略了.说的对与不对只能作为参考.
我曾经做过这样的东西:根据用户角色,什么样角色可以访问数据库中的什么记录.什么样的角色可以对它进行修改,插入数据(这依赖数据库中指定的策略了).这个都可以做到行级的访问控制了.我目前只知道ORACLE可以做到.其他的不了解.SQL server应该不能这样!呵呵!
11 楼
jini
2006-07-14
引用
需求是 角色1 可对 attr1 进行读操作, 对 attr2 进行写操作, 而 角色2 对 attr1, attr2 都没有读权限.
這用 aop 的觀念實現一點都不難, 否則利用 SessionBean 設定 method-security 應該是最方便的.
........................................................................
另外, 在 directory server 應該有區分 ACL and ACI
aci 的範例
aci: (target=”“ldap:///$rootSuffix”)
(targetfilter=(!(objectclass=sunServiceComponent)))
(targetattr != “userPassword||passwordHistory
||passwordExpirationTime||passwordExpWarned||passwordRetryCount
||retryCountResetTime||accountUnlockTime||passwordAllowChangeTime”)
(version 3.0; acl “anonymous access rights”;
allow (read,search,compare)
userdn = “ldap:///anyone”; )
根據不同 target, 設定相關的 permissions ( allow/deny ) 以及相關人員,
ACL 在同一個 directoy entry 之中, 僅算是 ACI 的屬性, 通常應用在系統的存取權限控制上..
........................................................................
說真的. 我完全不知道為什麼 method security 會扯到 ACL .
引用
ACL一般应用于用户数少(相对于权限)的场景,性能好是它的特点
RBAC一般应用于用户多,权限也多的场景,灵活是其主要解决的问题
最後, ACL 和 RBAC 也沒什麼直接的關係. ACI 可以設定 DN 為 Role...
"ACL一般应用于用户数少, RBAC一般应用于用户多" 真的是蠻奇怪的觀念的 ...
你們回帖的人 有使用過 DS 做過 Access Control 嗎 ?
10 楼
BirdGu
2006-07-13
ACL有很多规则组成。每项规则有三个要素:主体(用户),操作的对象(对象,对象的某个属性,或者程序),被授权的操作(读,写,执行等)。
基于行的权限控制也好,基于列的控制权限也好,只是ACL中的操作对象的粒度不同。
在信息安全领域,关于访问控制的理论是很丰富和完备的。但是,现在要完美的实现这些理论却还是很困难的。主要限制就是实现的复杂度以及性能。
所以,根据实际情况,在安全性和性能,复杂度之家折衷考虑吧。
基于行的权限控制也好,基于列的控制权限也好,只是ACL中的操作对象的粒度不同。
在信息安全领域,关于访问控制的理论是很丰富和完备的。但是,现在要完美的实现这些理论却还是很困难的。主要限制就是实现的复杂度以及性能。
所以,根据实际情况,在安全性和性能,复杂度之家折衷考虑吧。
9 楼
wolfsquare
2006-07-13
ACL一般应用于用户数少(相对于权限)的场景,性能好是它的特点
RBAC一般应用于用户多,权限也多的场景,灵活是其主要解决的问题
说大了,世界上权限控制方式只有两种,一种是控制单体数据(怎么叫都好,什么行数据,实例数据都可以),另外一种是控制数据集合的权限.ACL,RBAC和这种划分是没有冲突的.所谓的列数据控制,其实是控制数据集合权限的变形罢了. 在这上面糊涂的人,其实是没有搞清楚自己到底要控制什么罢了.在说明白点,就是上面说的控制数据attr,其实应该控制的是operation(business logic)
RBAC一般应用于用户多,权限也多的场景,灵活是其主要解决的问题
说大了,世界上权限控制方式只有两种,一种是控制单体数据(怎么叫都好,什么行数据,实例数据都可以),另外一种是控制数据集合的权限.ACL,RBAC和这种划分是没有冲突的.所谓的列数据控制,其实是控制数据集合权限的变形罢了. 在这上面糊涂的人,其实是没有搞清楚自己到底要控制什么罢了.在说明白点,就是上面说的控制数据attr,其实应该控制的是operation(business logic)
8 楼
凤舞凰扬
2006-07-04
Feiing 写道
其实这个 列级 权限控制跟 实例级 权限控制很类似, 标准的 实例级 权限控制是采用 ACL 实现, 不过其复杂度和执行效率都令人诟病
ACL是什么东东?这么牛?我一直思考着基于列的权限控制,复杂度和效率一直是让我不敢着手和思考的原因。
我曾经做到过数据行的管理与控制,据说Oracle做到行与列的管理控制。
我曾经尝试想用ValueObject的原理去考量基于列的控制,自今也没有一个可以去实现的方案。
刚刚查了一下google, ACL 指Access Control List 。是否如楼上所说的?
引用
ACL(access control list)
访问控制表
ACL是存在于计算机中的一张表,它使操作系统明白每个用户对特定系统对象,例如文件目录或单个文件的存取权限。每个对象拥有一个在访问控制表中定义的安全属性。这张表对于每个系统用户有拥有一个访问权限。最一般的访问权限包括读文件(包括所有目录中的文件),写一个或多个文件和执行一个文件(如果它是一个可执行文件或者是程序的时候)。Windows NT,Novell公司的Netware,Digital公司的 OpenVMS和基于UNIX系统是使用这种访问控制表的系统。而此表的实现在各个系统中却不一样。
在Windows NT中,每个系统对象和一个访问控制表相关。每个ACL都有一个或多个访问控制入口,包括用户名或用户组的名称。对于每个用户,组或人物,他们的访问权限在表中的一个位串中记录。一般说来,系统管理员和对象的所有者创建对象的访问控制表。
作为一个一般的例子,试想一个三个用户的操作系统,在其中一个人是程序员,另一个是程序测试员最后一个是系统本身。ACL中的程序对象可能如下所示:
programmer read write execute
tester read execute
system execute
在这个三个入口的ACL中,在读写和执行程序对象前,系统将测试请求者是否有权限提出这一请求。例如,程序测试者有权读程序和运行程序,但无权写程序,或更改程序。
, 但是我看不出,这对基于数据行与数据列的权限控制有任何指导的意义啊?访问控制表
ACL是存在于计算机中的一张表,它使操作系统明白每个用户对特定系统对象,例如文件目录或单个文件的存取权限。每个对象拥有一个在访问控制表中定义的安全属性。这张表对于每个系统用户有拥有一个访问权限。最一般的访问权限包括读文件(包括所有目录中的文件),写一个或多个文件和执行一个文件(如果它是一个可执行文件或者是程序的时候)。Windows NT,Novell公司的Netware,Digital公司的 OpenVMS和基于UNIX系统是使用这种访问控制表的系统。而此表的实现在各个系统中却不一样。
在Windows NT中,每个系统对象和一个访问控制表相关。每个ACL都有一个或多个访问控制入口,包括用户名或用户组的名称。对于每个用户,组或人物,他们的访问权限在表中的一个位串中记录。一般说来,系统管理员和对象的所有者创建对象的访问控制表。
作为一个一般的例子,试想一个三个用户的操作系统,在其中一个人是程序员,另一个是程序测试员最后一个是系统本身。ACL中的程序对象可能如下所示:
programmer read write execute
tester read execute
system execute
在这个三个入口的ACL中,在读写和执行程序对象前,系统将测试请求者是否有权限提出这一请求。例如,程序测试者有权读程序和运行程序,但无权写程序,或更改程序。
7 楼
heaven
2006-06-01
<p>个人认为,当前的需求是做 实例级的访问控制,用acl模型和rbac应该都无所,用acl的话最终要得到当前用户对该实例的访问控制列表,如果用rbac的概念描述就是得到当前ob的ops,其实是一样的,用什么模型取决于当前的安全需求是object central 还是 user central。
<p>在通常的分层实现的j2ee应用程序中,通常有两个切面可以获得实例
web 层 在进入controller之前, 通过分析request得到当前实例,进行控制,
service层,使用aop通过分析service method的参数得到实例,进行控制。
<p>大概就是这样思路,具体实现起来有太多的细节需要考虑。
看过很多成功的web应用都是用acl,用rbac的还罕有,见过的rbac大都走了样子,只剩下一个rabc的概念.
<p>在通常的分层实现的j2ee应用程序中,通常有两个切面可以获得实例
web 层 在进入controller之前, 通过分析request得到当前实例,进行控制,
service层,使用aop通过分析service method的参数得到实例,进行控制。
<p>大概就是这样思路,具体实现起来有太多的细节需要考虑。
看过很多成功的web应用都是用acl,用rbac的还罕有,见过的rbac大都走了样子,只剩下一个rabc的概念.
6 楼
liuyxit
2006-05-30
跟我准备做的自定义列表有点相似。
而我的设想是用自定义标签完成。
就我这情况而言,最麻烦又最想解决的是数据量的问题。
而你的权限就用自定义 标签就差不多了。
而我的设想是用自定义标签完成。
就我这情况而言,最麻烦又最想解决的是数据量的问题。
而你的权限就用自定义 标签就差不多了。
5 楼
downpour
2006-05-30
哪能嘎麻烦?映射数据库嘛?如果这些字段都对应于数据库,为什么不对某些字段做一次ORM,对另外一些字段再做一次ORM,这样一来,你的隔离就针对对象了。
4 楼
wainwen
2006-05-30
Feiing 写道
wainwen 写道
建议先把权限模型确定下来,再考虑如何实现。
ACL = Access Control List,访问控制列表。
另外一个很重要的概念是 RBAC = Role Based Access Contol,可以google一下。
如果对于权限模型经验不多,最好看看相关资料后再确定自己如何设计。个人感觉,权限系统是信息管理系统中非常复杂,也非常容易设计不到位的部分。
下面是一个比较简单的事业部制组织机构及权限模型:
组织结构:建立一颗部门树,部门可以嵌套子部门
职务:建立多种职务,简单系统,职业和部门可以没有关系,比如项目经理,公司所有部门都可以有项目经理的职务
权限:权限和职务关联,比如项目经理可以有以下权限:创建新任务、请假审批等
员工:一个员工,属于一个特定部门,同时可以在一个部门具有多种职务,也可以在多个部门兼任多个职务
ACL = Access Control List,访问控制列表。
另外一个很重要的概念是 RBAC = Role Based Access Contol,可以google一下。
如果对于权限模型经验不多,最好看看相关资料后再确定自己如何设计。个人感觉,权限系统是信息管理系统中非常复杂,也非常容易设计不到位的部分。
下面是一个比较简单的事业部制组织机构及权限模型:
组织结构:建立一颗部门树,部门可以嵌套子部门
职务:建立多种职务,简单系统,职业和部门可以没有关系,比如项目经理,公司所有部门都可以有项目经理的职务
权限:权限和职务关联,比如项目经理可以有以下权限:创建新任务、请假审批等
员工:一个员工,属于一个特定部门,同时可以在一个部门具有多种职务,也可以在多个部门兼任多个职务
你说了这么多, 跟我要做的列级权限控制有什么关系?
抱歉,有些跑题。
我有点印象,好像是前面有贴子提到不太了解ACL,因此多说了几句,呵呵。
发表评论
-
Bookmarks
2010-07-07 16:42 1526Architecture J2EE cluster htt ... -
XML validation error on request: cvc-complex-type
2010-04-15 21:45 1375see http://72.5.124.102/threa ... -
Spring LoadTimeWeaver 的那些事儿
2009-10-05 00:39 4079DDD 现在越来越流行了, 不管正确与否, new U ... -
理解 Java 的 GC 与 幽灵引用
2009-06-04 03:02 3286理解 Java 的 GC 与 幽灵引用 J ... -
基于 Apache Mina 的 RPC 实现 (长连接 webservice)
2008-11-27 23:26 4390写了一个基于 Apache Mina 和 SpringRemo ... -
Atomikos JTA for Hibernate3
2007-11-22 14:52 3364http://wiki.atomikos.org/bin/vi ... -
Spring AOP 概览与细节
2007-08-05 03:21 6031@王政 @2007-08-04 @转载请注明 ... -
解惑 spring 嵌套事务
2006-11-25 01:03 36205解惑 spring 嵌套事务 /** * @au ... -
使用 FactoryBean 让你的 spring 配置动起来
2006-11-01 17:43 10491看到不少朋友讨论 spring 配置时认为 spring 配置 ... -
Spring 事务简化配置
2006-03-21 00:33 36793在 spring 中, 事务管理一般是通过声明一个 txPr ... -
再论 Acegi 权限存储策略
2006-02-18 00:17 12864本文原出处 http://starcraft.blogdriv ... -
以前写的一篇介绍 Acegi 的文档
2006-01-05 09:51 13296半年前写的, 版本是 0.8.3, 主要是翻译了一些 ref ... -
Acegi 资源配置动态扩展实现
2005-12-13 16:21 19198本文原出处 : http://starcr ...
相关推荐
"通用数据权限管理系统设计.doc"可能关注数据层面的权限控制,如行级权限、列级权限等,确保用户只能查看和操作其被授权的数据。 "1 权限系统范围.doc"和"权限系统概要.doc"可能是对整个权限系统边界和核心功能的...
在大数据领域,Apache Ranger作为一个安全管理框架,为Hadoop生态系统提供了全面的数据安全解决方案。Ranger通过提供细粒度的访问控制、审计和策略管理,确保了数据的隐私和安全性。本文将重点讨论Ranger 2.0.0-...
- 权限与约束:讲解GRANT、REVOKE命令,以及行级和列级权限控制。 - 视图与同义词:如何创建和使用视图来提供数据访问的安全性,以及同义词在权限管理和简化SQL语句中的应用。 5. **备份与恢复策略** - RMAN...
8. **安全性与权限**:具备精细的权限控制,包括角色管理、表级权限、列级权限和行级安全,确保数据的安全访问。 9. **大数据处理**:PostgreSQL可以通过并行查询、分区表和外部表等功能处理大规模数据,同时支持...
由于提供的压缩包只有一个名为 "SQL2022-SSEI-Dev.exe" 的文件,这很可能是安装程序或工具包,用于在开发环境中设置 SQL Server 2022 的 SSEI 特性。 SQL Server 2022 是 Microsoft 提供的企业级数据库管理系统,...
5. **安全性增强**:包括对行级和列级权限控制的改进,以及更强的加密功能,保护敏感数据安全。 6. **高可用性**:支持各种高可用性解决方案,如镜像、日志传送和故障切换,确保业务连续性。 7. **性能优化**:...
- **动态权限调整**:讨论在运行时动态调整用户或角色权限的方法和技术。 **3. 审计与监控** - **审计记录**:讲解如何配置审计日志来记录关键操作,以及如何分析这些日志以发现潜在的安全威胁。 - **性能监控**...
9. **性能监控**:新的性能模式提供了一个详细的数据库性能视图,帮助管理员识别性能瓶颈。 10. **XML处理**:增强了XML数据类型的支持,包括XML解析、验证和查询功能。 在使用过程中,如果遇到问题,用户可以访问...
- **模拟行级和列级访问控制**:提供关于如何实现细粒度访问控制的方案。 - **数据加密**:讲解如何对敏感数据进行加密存储。 - **密码加密**:说明如何启用密码加密以增加安全性。 - **时间基认证**:介绍一种基于...
- **模拟行级和列级访问控制**:介绍了如何实现更精细的数据访问控制策略。 - **数据加密**:介绍了加密敏感数据的重要性,并指导如何实施。 - **密码加密**:演示了如何加密用户的登录密码。 - **启用 SHA-256 ...
"小布oracleDBA11集"可能是一个系列教程或学习资源,专门针对Oracle数据库11g版本。Oracle 11g是Oracle公司推出的数据库管理系统的一个重要版本,提供了许多新特性和增强功能,旨在提高性能、可用性和安全性。 1. *...
正常化是数据库设计中的一个重要概念,旨在减少数据冗余和提高数据一致性,我们将详细讨论第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及BCNF(巴斯-科德范式)。 接着,我们将学习 SQL Server 的核心功能...