﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-andyj2ee-文章分类-rbac</title><link>http://www.blogjava.net/andyj2ee/category/1107.html</link><description>java tec sky</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 10:37:30 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 10:37:30 GMT</pubDate><ttl>60</ttl><item><title>基于角色管理(RBAC)的权限系统</title><link>http://www.blogjava.net/andyj2ee/articles/3600.html</link><dc:creator>java光环</dc:creator><author>java光环</author><pubDate>Fri, 22 Apr 2005 02:40:00 GMT</pubDate><guid>http://www.blogjava.net/andyj2ee/articles/3600.html</guid><wfw:comment>http://www.blogjava.net/andyj2ee/comments/3600.html</wfw:comment><comments>http://www.blogjava.net/andyj2ee/articles/3600.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/andyj2ee/comments/commentRss/3600.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andyj2ee/services/trackbacks/3600.html</trackback:ping><description><![CDATA[<!--StartFragment -->&nbsp;
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体"><FONT size=2>这里的权限系统要区分<SPAN lang=EN-US>2</SPAN>个概念：</FONT><SPAN lang=EN-US></SPAN></SPAN></P>
<P><FONT face="Times New Roman" size=3></FONT>&nbsp;</P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: 宋体"></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><B><SPAN style="FONT-FAMILY: 宋体">粗粒度：</SPAN></B><SPAN style="FONT-FAMILY: 宋体">表示类（</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">model</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">）别级，即仅考虑对象的类别<SPAN lang=EN-US>(</SPAN></SPAN><SPAN lang=EN-US><FONT face="Times New Roman">the type of object</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: 宋体">)</SPAN><SPAN style="FONT-FAMILY: 宋体">，不考虑对象的某个特定的实例。比如，对合同这个类别<SPAN lang=EN-US>(</SPAN></SPAN><SPAN lang=EN-US><FONT face="Times New Roman">contract</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: 宋体">)</SPAN></FONT><SPAN style="FONT-FAMILY: 宋体"><FONT size=2>的管理中，创建、删除等操作，对所有的用户都一视同仁，并不区分具体的对象实例（销售合同，生产合同）。</FONT><SPAN lang=EN-US></SPAN></SPAN></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2></FONT><SPAN lang=EN-US style="FONT-FAMILY: 宋体"></SPAN><FONT size=2><B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="" mso-bidi-font-size="" 10.5pt="">细粒度：</SPAN></B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">表示实例</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">(instance)</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">级别，即需要考虑具体对象的实例</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">(the instance of object)</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">，当然，细粒度是在考虑粗粒度的对象类别之后才再考虑特定实例。比如，销售合同管理中，合同所有者拥有查看、修改、删除等权限，其他用户只有合同的查看权限。</SPAN></FONT></P>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2></FONT><SPAN lang=EN-US></SPAN><FONT size=2><B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">权限系统的设计原则：</SPAN></B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">权限逻辑配合业务逻辑。即权限系统以为业务逻辑提供服务为目标。</SPAN></FONT></P>
<P><FONT face="Times New Roman" size=2></FONT>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">细粒度的权限问题因为其业务相关性而不具通用意义，它们被理解为是</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">“</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">业务逻辑</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">”</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">的一部分。比如，要求：</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">“</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">某个合同只能被它的创建者删除，与创建者同组的用户可以修改，所有的用户能够浏览</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">”</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">。这既是一个细粒度的权限问题，也是一个业务逻辑问题。在这里它是业务逻辑问题，在整个权限系统的架构设计之中不予考虑。当然，权限系统的构架设计也必须要能支持这样的业务逻辑。或者说，系统提供足够多但不是完全的控制能力。即，设计原则归结为：</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">“</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">系统只提供粗粒度的权限，细粒度的权限被认为是业务逻辑的职责</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">”</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">。</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2></FONT><SPAN lang=EN-US></SPAN><FONT size=2><B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">权限逻辑</SPAN><FONT face="Times New Roman"> </FONT></B><B><SPAN lang=EN-US style="FONT-FAMILY: Wingdings" times="" mso-hansi-font-family="" ?times="" new="" roman="" mso-char-type="" symbol="" mso-symbol-font-family="" wingdings=""><SPAN>ß</SPAN></SPAN></B><B><SPAN lang=EN-US style="FONT-FAMILY: Wingdings" times="" mso-hansi-font-family="" ?times="" new="" roman="" mso-char-type="" symbol="" mso-symbol-font-family="" wingdings=""><SPAN>à</SPAN></SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> </FONT></SPAN></B></FONT><B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman=""><FONT size=2>粗粒度</FONT></SPAN><SPAN lang=EN-US></SPAN></B></P>
<P><FONT face="Times New Roman" size=2></FONT>&nbsp;</P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">业务逻辑</SPAN><FONT face="Times New Roman"> </FONT></B><B><SPAN lang=EN-US style="FONT-FAMILY: Wingdings" times="" mso-hansi-font-family="" ?times="" new="" roman="" mso-char-type="" symbol="" mso-symbol-font-family="" wingdings=""><SPAN>ß</SPAN></SPAN></B><B><SPAN lang=EN-US style="FONT-FAMILY: Wingdings" times="" mso-hansi-font-family="" ?times="" new="" roman="" mso-char-type="" symbol="" mso-symbol-font-family="" wingdings=""><SPAN>à</SPAN></SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> </FONT></SPAN></B></FONT><B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman=""><FONT size=2>细粒度</FONT></SPAN><SPAN lang=EN-US></SPAN></B></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2></FONT><B><SPAN lang=EN-US></SPAN></B><B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman=""><FONT size=2>概念：</FONT></SPAN><SPAN lang=EN-US></SPAN></B></P>
<P><FONT face="Times New Roman" size=2></FONT>&nbsp;</P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><B><SPAN lang=EN-US><FONT face="Times New Roman">Object:<SPAN>&nbsp; </SPAN></FONT></SPAN></B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">指系统中各种功能模块，业务模型（</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Model</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">），业务对象</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">(Object)</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">，界面元素等，它是主体能访问到的所有对象。由于对象的类型不同，被访问的权限也不同。</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -36pt"><FONT size=2><B><SPAN lang=EN-US><SPAN><FONT face="Times New Roman">（1）<SPAN style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal" times="" new="" roman="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT></SPAN></SPAN></B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">系统功能模块：系统中除了公用的界面，公用的模块外，其他均为业务功能模块，业务操作在设计阶段完成，因此不存在实例的概念。可以直接针对角色进行授权。</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -36pt"><FONT size=2><B><SPAN lang=EN-US><SPAN><FONT face="Times New Roman">（2）<SPAN style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal" times="" new="" roman="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT></SPAN></SPAN></B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">界面元素：除了功能菜单受到控制外，如要控制功能模块的界面元素其功能模块界面元素也需定义，大部分界面元素均包含有相关的业务功能操作，因此可以与数据模型统一来处理。</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -36pt"><FONT size=2><B><SPAN lang=EN-US><SPAN><FONT face="Times New Roman">（3）<SPAN style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal" times="" new="" roman="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT></SPAN></SPAN></B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">业务模型，业务对象：业务模型是我们的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Domain Model</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">，开发人员在设计开发阶段就已经定义好了相关的业务操作，也就是相应的权限。</SPAN><FONT face="Times New Roman"> </FONT><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">业务对象是我们业务模型的实例化</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Domain Object</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">。是用户在系统运行时创建的，因此它的权限也是用户在系统运行时创建的。</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 57pt; TEXT-INDENT: -36pt"><FONT size=2><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman=""></SPAN></FONT></P>
<DIV align=center>
<TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 border=1>
<TBODY>
<TR style="HEIGHT: 16.65pt">
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 78.45pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 16.65pt; BACKGROUND-COLOR: transparent" width=105>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman=""><FONT size=2>粗粒度</FONT></SPAN><SPAN lang=EN-US></SPAN></B></P>
<P><FONT size=2></FONT></P></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: rgb(212,208,200); WIDTH: 158.45pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 16.65pt; BACKGROUND-COLOR: transparent" width=211>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><FONT size=2></FONT><B><SPAN lang=EN-US></SPAN></B></P>
<P><FONT size=2></FONT></P>
<P><FONT face="Times New Roman" size=2></FONT>&nbsp;</P></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: rgb(212,208,200); WIDTH: 83.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 16.65pt; BACKGROUND-COLOR: transparent" width=111>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman=""><FONT size=2>细粒度</FONT></SPAN><SPAN lang=EN-US></SPAN></B></P>
<P><FONT size=2></FONT></P></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: rgb(212,208,200); WIDTH: 105.7pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 16.65pt; BACKGROUND-COLOR: transparent" width=141>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><FONT size=2></FONT><B><SPAN lang=EN-US></SPAN></B></P>
<P><FONT size=2></FONT></P>
<P><FONT face="Times New Roman" size=2></FONT>&nbsp;</P></TD></TR>
<TR style="HEIGHT: 16.65pt">
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: rgb(212,208,200); PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 78.45pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 16.65pt; BACKGROUND-COLOR: transparent" width=105>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><B><SPAN lang=EN-US><FONT face="Times New Roman" size=2>Domain Model</FONT></SPAN></B></P></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: rgb(212,208,200); PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: rgb(212,208,200); WIDTH: 158.45pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 16.65pt; BACKGROUND-COLOR: transparent" width=211>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">业务模型，比如合同（</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">Contract Model</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">）</SPAN></FONT><SPAN lang=EN-US style="FONT-SIZE: 9pt"></SPAN></P>
<P><FONT size=2></FONT></P></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: rgb(212,208,200); PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: rgb(212,208,200); WIDTH: 83.5pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 16.65pt; BACKGROUND-COLOR: transparent" width=111>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B><SPAN lang=EN-US><FONT face="Times New Roman"><FONT size=2>Domain Object</FONT></FONT></SPAN></B></P>
<P><FONT size=2></FONT></P></TD>
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: rgb(212,208,200); PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: rgb(212,208,200); WIDTH: 105.7pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 16.65pt; BACKGROUND-COLOR: transparent" width=141>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><FONT size=2><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">业务模型的某个实例话对象，比如销售合同（</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt"><FONT face="Times New Roman">Sell Contract Object</FONT></SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">）</SPAN></FONT><SPAN lang=EN-US style="FONT-SIZE: 9pt"></SPAN></P>
<P><FONT size=2></FONT></P></TD></TR></TBODY></TABLE></DIV>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2></FONT><SPAN lang=EN-US></SPAN></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><B><SPAN lang=EN-US><FONT face="Times New Roman">Privilege(Operative, Permission) : </FONT></SPAN></B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">是</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Object Related</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">的操作。就是指，这个权限是绑定在特定的对象上的。比如说部门新闻的发布权限，叫做</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">"</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">部门新闻发布权限</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">"</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">。这就表明，该</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Privilege</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">是一个发布权限，而且是针对部门新闻这种资源的一种发布权限。权限，包括系统定义权限和用户自定义权限，用户自定义权限之间可以指定排斥和包含关系</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">(</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">如：读取，修改，管理三个权限，管理</SPAN><FONT face="Times New Roman"> </FONT><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">权限</SPAN><FONT face="Times New Roman"> </FONT><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">包含</SPAN><FONT face="Times New Roman"> </FONT><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">前两种权限</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">)</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">。</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2></FONT><SPAN lang=EN-US></SPAN><FONT size=2><B><SPAN lang=EN-US><FONT face="Times New Roman">Role: </FONT></SPAN></B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">是权限的集合，是粗粒度和细粒度</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">(</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">业务逻辑</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">)</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">的接口。一个基于粗粒度控制的权限框架软件，对外的接口应该是</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Role</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">，具体业务实现可以直接继承或拓展丰富</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Role</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">的内容，</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Role</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">不是如同</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">User</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">或</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Group</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">的具体实体，它是接口概念，抽象的通称。</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Role</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">的继承通过</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Group</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">来体现，所以不考虑</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Role</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">的继承关系。但是</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Role</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">可以与相关的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Group</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">相关联，便于授权。</SPAN></FONT></P>
<P><FONT face="Times New Roman" size=2></FONT>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2></FONT><SPAN lang=EN-US></SPAN><FONT size=2><B><SPAN lang=EN-US><FONT face="Times New Roman">Group: </FONT></SPAN></B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">用户组，权限分配的单位与载体，直接映射组织关系。权限不考虑分配给特定的用户。组可以包括组</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">(</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">以实现权限的继承</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">)</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">。组可以包含用户，组内用户继承组的权限。</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Group</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">要实现继承。即在创建时必须要指定该</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Group</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Parent</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">是什么</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Group</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">。在粗粒度控制上，可以认为，只要某用户直接或者间接的属于某个</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Group</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">那么它就具备这个</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Group</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">的所有操作许可。细粒度控制上，在业务逻辑的判断中，</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">User</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">仅应关注其直接属于的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Group</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">，用来判断是否</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">“</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">同组</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">” </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">。</SPAN></FONT></P>
<P><FONT face="Times New Roman" size=2></FONT>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><SPAN style="COLOR: red; FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">但是</SPAN><SPAN lang=EN-US style="COLOR: red"><FONT face="Times New Roman">Group</FONT></SPAN><SPAN style="COLOR: red; FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">的继承导致的权限继承和组织关系正好相反，组织关系的上层相应的权限更大，所以是一种逆向继承。</SPAN></FONT><SPAN lang=EN-US style="COLOR: red"></SPAN></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2></FONT><B><SPAN lang=EN-US></SPAN></B><FONT size=2><FONT face="Times New Roman"><B><SPAN lang=EN-US>User:</SPAN></B><SPAN lang=EN-US> </SPAN></FONT><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">纯粹的用户，与权限</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">(operative?permission?privilege)</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">分离</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">,</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">只能通过</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Role</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">去关联相应的权限。</SPAN></FONT><B><SPAN lang=EN-US></SPAN></B></P>
<P><FONT face="Times New Roman" size=2></FONT>&nbsp;</P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2></FONT><B><SPAN lang=EN-US></SPAN></B><B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman=""><FONT size=2>关系：</FONT></SPAN><SPAN lang=EN-US></SPAN></B></P>
<P></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><B><SPAN lang=EN-US><FONT face="Times New Roman">Privilege </FONT></SPAN></B><B><SPAN lang=EN-US style="FONT-FAMILY: Wingdings" times="" mso-hansi-font-family="" ?times="" new="" roman="" mso-char-type="" symbol="" mso-symbol-font-family="" wingdings=""><SPAN>ß</SPAN></SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> n : 1 </FONT></SPAN></B></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Wingdings" times="" mso-hansi-font-family="" ?times="" new="" roman="" mso-char-type="" symbol="" mso-symbol-font-family="" wingdings=""><SPAN><FONT size=2>à</FONT></SPAN></SPAN><SPAN lang=EN-US><FONT face="Times New Roman"><FONT size=2> Resource</FONT></FONT></SPAN></B></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><B><SPAN lang=EN-US><FONT face="Times New Roman">Role </FONT></SPAN></B><B><SPAN lang=EN-US style="FONT-FAMILY: Wingdings" times="" mso-hansi-font-family="" ?times="" new="" roman="" mso-char-type="" symbol="" mso-symbol-font-family="" wingdings=""><SPAN>ß</SPAN></SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> n : n </FONT></SPAN></B></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Wingdings" times="" mso-hansi-font-family="" ?times="" new="" roman="" mso-char-type="" symbol="" mso-symbol-font-family="" wingdings=""><SPAN><FONT size=2>à</FONT></SPAN></SPAN><SPAN lang=EN-US><FONT face="Times New Roman"><FONT size=2> Privilege</FONT></FONT></SPAN></B></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><B><SPAN lang=EN-US><FONT face="Times New Roman">Group </FONT></SPAN></B><B><SPAN lang=EN-US style="FONT-FAMILY: Wingdings" times="" mso-hansi-font-family="" ?times="" new="" roman="" mso-char-type="" symbol="" mso-symbol-font-family="" wingdings=""><SPAN>ß</SPAN></SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> n : n </FONT></SPAN></B></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Wingdings" times="" mso-hansi-font-family="" ?times="" new="" roman="" mso-char-type="" symbol="" mso-symbol-font-family="" wingdings=""><SPAN><FONT size=2>à</FONT></SPAN></SPAN><SPAN lang=EN-US><FONT face="Times New Roman"><FONT size=2> User</FONT></FONT></SPAN></B></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><B><SPAN lang=EN-US><FONT face="Times New Roman">Group </FONT></SPAN></B><B><SPAN lang=EN-US style="FONT-FAMILY: Wingdings" times="" mso-hansi-font-family="" ?times="" new="" roman="" mso-char-type="" symbol="" mso-symbol-font-family="" wingdings=""><SPAN>ß</SPAN></SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> n : n </FONT></SPAN></B></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Wingdings" times="" mso-hansi-font-family="" ?times="" new="" roman="" mso-char-type="" symbol="" mso-symbol-font-family="" wingdings=""><SPAN><FONT size=2>à</FONT></SPAN></SPAN><SPAN lang=EN-US><FONT face="Times New Roman"><FONT size=2> Role</FONT></FONT></SPAN></B></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><B><SPAN lang=EN-US><FONT face="Times New Roman">User </FONT></SPAN></B><B><SPAN lang=EN-US style="FONT-FAMILY: Wingdings" times="" mso-hansi-font-family="" ?times="" new="" roman="" mso-char-type="" symbol="" mso-symbol-font-family="" wingdings=""><SPAN>ß</SPAN></SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> n : n </FONT></SPAN></B></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Wingdings" times="" mso-hansi-font-family="" ?times="" new="" roman="" mso-char-type="" symbol="" mso-symbol-font-family="" wingdings=""><SPAN><FONT size=2>à</FONT></SPAN></SPAN><SPAN lang=EN-US><FONT face="Times New Roman"><FONT size=2> Role</FONT></FONT></SPAN></B></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2></FONT><B><SPAN lang=EN-US></SPAN></B></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2></FONT><B><SPAN lang=EN-US></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B><SPAN lang=EN-US><OVAL id=_x0000_s1029 style="LEFT: 7997px; WIDTH: 1563px; POSITION: absolute; TOP: 11539px; HEIGHT: 846px"><TEXTBOX></TEXTBOX></OVAL><SHAPETYPE id=_x0000_t93 adj="16200,5400" path="m@0,l@0@1,3375@1,3375@2@0@2@0,21600,21600,10800xem1350@1l1350@2,2700@2,2700@1xem0@1l0@2,675@2,675@1xe" o:spt="93" coordsize="21600,21600"><STROKE joinstyle="miter"><FORMULAS><F eqn="val #0"><F eqn="val #1"><F eqn="sum height 0 #1"><F eqn="sum 10800 0 #1"><F eqn="sum width 0 #0"><F eqn="prod @4 @3 10800"><F eqn="sum width 0 @5"></F><PATH textboxrect="3375,@1,@6,@2" o:connectangles="270,180,90,0" o:connectlocs="@0,0;0,10800;@0,21600;21600,10800" o:connecttype="custom"><HANDLES><H yrange="0,10800" xrange="3375,21600" position="#0,#1"></H></HANDLES><SHAPE id=_x0000_s1030 style="LEFT: 4240px; WIDTH: 1096px; POSITION: absolute; TOP: 11675px; HEIGHT: 667px" type="#_x0000_t93"><FONT face="Times New Roman"></FONT></SHAPE><SHAPE id=_x0000_s1031 style="LEFT: 6901px; WIDTH: 1096px; POSITION: absolute; TOP: 11675px; HEIGHT: 667px" type="#_x0000_t93"><FONT face="Times New Roman"></FONT></SHAPE><OVAL id=_x0000_s1032 style="LEFT: 2362px; WIDTH: 1878px; POSITION: absolute; TOP: 11267px; HEIGHT: 1359px"><TEXTBOX></TEXTBOX></OVAL><OVAL id=_x0000_s1033 style="LEFT: 2988px; WIDTH: 783px; POSITION: absolute; TOP: 11946px; HEIGHT: 506px"><TEXTBOX></TEXTBOX></OVAL></PATH></F></F></F></F></F></F></FORMULAS></STROKE></SHAPETYPE></SPAN></B><B><SPAN lang=EN-US><FONT face="Times New Roman" size=2></FONT></SPAN></B></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman=""><FONT size=2>权限系统的操作模式：</FONT></SPAN><SPAN lang=EN-US></SPAN></B></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><B><SPAN lang=EN-US><FONT face="Times New Roman">(1): </FONT></SPAN></B><B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">创造资源，权限</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">: </FONT></SPAN></B><SPAN lang=EN-US><SPAN><FONT face="Times New Roman">&nbsp;</FONT></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">这里要从粗，细粒度</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">2</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">方面来考虑</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21.75pt"><FONT size=2><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">粗粒度：开发人员设计</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">DomainModel</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">的时候就定义好相关的操作。比如</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">ContractModel</FONT></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 63pt"><FONT size=2><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">这个</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">DomainModel,</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">开发人员设计的时候就已经定义好了模型的相关操作，比如查看，修改等等。默认的情况下对所有的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Role</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">都是相同的。</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><SPAN lang=EN-US><SPAN><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">细粒度： 用户创建一个</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">DomainModel</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">的实例</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">DomainObject</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">的时候指定相关的权</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 63pt"><FONT size=2><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">限以及权限分配。比如销售合同只能创建者有修改的权限，同</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Group</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">的人员只能拥有查看的权限。</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><B><SPAN lang=EN-US><FONT face="Times New Roman">(2): </FONT></SPAN></B><B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">分配权限</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">: </FONT></SPAN></B><SPAN lang=EN-US><FONT face="Times New Roman">Administrator</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">指定相关</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">DomainModel</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">的权限分配</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">,</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">创建</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Role</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">，创建</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Group</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">，给</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: 21pt"><FONT size=2><SPAN lang=EN-US><FONT face="Times New Roman">Group</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">分配</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">User</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">，给</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Group</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">赋予某个</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Role</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">等等。</SPAN></FONT><SPAN lang=EN-US></SPAN></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><B><SPAN lang=EN-US><FONT face="Times New Roman">(3): </FONT></SPAN></B><B><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">使用权限</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">:</FONT></SPAN></B><SPAN lang=EN-US><FONT face="Times New Roman"> User </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">使用</SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> Administrator</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">分配的角色去使用相应的系统功能。</SPAN></FONT><B><SPAN lang=EN-US></SPAN></B></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2></FONT><SPAN lang=EN-US></SPAN></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2></FONT><SPAN lang=EN-US></SPAN></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SHAPE id=_x0000_i1026 style="WIDTH: 414.75pt; HEIGHT: 341.25pt" type="#_x0000_t75"><IMAGEDATA o:title="权限系统2" src="file:///C:%5CDOCUME%7E1%5Cibm%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image002.jpg"><FONT face="Times New Roman" size=2></FONT></IMAGEDATA></SHAPE></SPAN></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="" mso-bidi-font-size="" 10.5pt=""><FONT size=2>模块划分：</FONT></SPAN><SPAN lang=EN-US></SPAN></P>
<P><FONT size=2></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 63pt; TEXT-INDENT: -21pt; LINE-HEIGHT: 150%"><FONT size=2><SPAN lang=EN-US times="" new="" roman=""><SPAN><FONT face="Times New Roman">1)<SPAN style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal" times="" new="" roman="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">对象管理模块。此模块主要负责从粗细粒度对于系统中可提供的资源或资源实例进行管理。</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 63pt; TEXT-INDENT: -21pt; LINE-HEIGHT: 150%"><FONT size=2><SPAN lang=EN-US times="" new="" roman=""><SPAN><FONT face="Times New Roman">2)<SPAN style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal" times="" new="" roman="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">权限管理模块。此模块主要负责对资源权限进行管理。管理员可以在粗细粒度下对资源权限进行管理。用户可以对创建的资源实例进行权限的管理。</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 63pt; TEXT-INDENT: -21pt; LINE-HEIGHT: 150%"><FONT size=2><SPAN lang=EN-US times="" new="" roman=""><SPAN><FONT face="Times New Roman">3)<SPAN style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal" times="" new="" roman="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">角色管理模块。此模块主要负责对角色进行相应的管理（包括添加、删除、修改）；对角色所拥有的权限进行相应的管理（包括授予、删除所拥有的权限）；对用户和组赋予相应的角色等等</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 63pt; TEXT-INDENT: -21pt; LINE-HEIGHT: 150%"><FONT size=2><SPAN lang=EN-US times="" new="" roman=""><SPAN><FONT face="Times New Roman">4)<SPAN style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal" times="" new="" roman="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">用户管理模块。此模块主要负责对用户进行管理（包括添加、删除、修改）；对用户所属的角色进行管理（包括添加、删除）；对用户所属的组进行管理。</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 63pt; TEXT-INDENT: -21pt; LINE-HEIGHT: 150%"><FONT size=2><SPAN lang=EN-US times="" new="" roman=""><SPAN><FONT face="Times New Roman">5)<SPAN style="FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal" times="" new="" roman="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">组管理模块。组映射组织机构，提供对于部门组织机构维护</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">(</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">添加、修改、删除</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">)</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体" times="" mso-hansi-font-family="" ?times="" new="" roman="">；对组的成员进行维护；对组所拥有的角色进行管理。</SPAN></FONT></P><img src ="http://www.blogjava.net/andyj2ee/aggbug/3600.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andyj2ee/" target="_blank">java光环</a> 2005-04-22 10:40 <a href="http://www.blogjava.net/andyj2ee/articles/3600.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>