文档库 最新最全的文档下载
当前位置:文档库 › 关于用户权限的数据库设计

关于用户权限的数据库设计

关于用户权限的数据库设计
关于用户权限的数据库设计

最近项目的项目很奇怪,一个大项目(系统)里包含了很多小的子系统,而这些子系统中都有权限控制的部分,这件事情挺让我头痛的,记得一年前在沈阳,我曾经有一段时间也因因这个问题而疲于奔命,为什么说疲于奔命呢?由于当时项目进度不允许,导致最终系统权限模块草草了事,每个模块都是由读权限字符串来控制用户ACL,当用户无法访问时,提示权限不够。这么做对用户是很不负责任的,既然让用户看到了操作的方式和界面,为什么又告诉用户没有权限呢?我开始怀疑我们是否应该在底层就封杀用户的访问权限。

现在项目开展起来了,虽然目前我已经有了对权限控制的一套方案,并且实施成了我的可重用框架代码,虽然目前的权限也是基于众星捧月的AOP思想,但我至今对权限设计仍有两个疑惑:疑惑一:很多同行提出方案,想要在底层就截取用户权限,控制用户对方法或者类的访问。这样做的好处在于可以将系统功能与业务逻辑松散耦合,并且实现简单,结构清晰,三两个advisor、filter,或者acegi就能搞定,但在web程序中体现出了他的劣势,当我们将用户的访问拒绝在业务逻辑之外的时候,我们此时是否应该抛出异常提示用户?一旦提示用户没有相应的权限,我认为对于用户来说,这就不是一个perfect practice。由此得出,我们根本就不应该让用户做此次操作,而控制用户操作的源头就是界面,也就是说,在界面上我们就应该对用户的权限元素(如添加按钮、功能菜单等)进行控制。此时,一对矛盾出现了,要控制界面上形形色色的元素只有两种办法,一,将权限与你的界面结合起来设计,这将违背AOP的思想,也使得系统控制模块的重用性大大下降,二,我们借鉴primeton的想法,将权限控制的理念抽取出来,单独做成一套权限系统,解决你所有的需要权限控制的系统需求,这样也有令人头痛的问题,你的所有想用它来控制权限的系统,必须界面上统一风格。或许这样的方式对商业web系统是合适的,毕竟需要你大刀阔斧个性化的地方不多,但我们却很难保证在未来几年内商业web系统的风格不改变。再者,开发这么一个系统也不是一蹴而就的事,在这个问题上一直让我困惑不已。

疑惑二:大多应用的权限判定是基于权限字符串的,但存储在数据库中的权限字符串能够判定的权限并不多,在我们这次项目中,我引用了基于二进制的8421权限判定法则,我深深的感觉到权限字符串的弱势,这使我想起了中国古老一套数学理论-“盈不足术”,超递增序列的魅力在我眼前滑过,

首先我来解释一下盈余不足理论:有十只盒子,第一个盒子里放一个盘子,第二个盒子里放两只,第三个盒子里放四只,第四个盒子里放八只……第九个盒子里放256只,第十个盒子放512只,即第N只箱子里放2^(N-1)只盘子,一共1023只。那么命题如下:在1023这个数字之内,

任何一个数目都可以由这十只盒子里的几只组合相加而成。那么1、2、4、8、16、32、64、128、256、512这个序列为什么有这么个魔力?这个数列的特点:1、每项是后一项的二倍,2、每项都比前面所有项的和大,而且大1。这个1就是关键,就因为这个1,它才可以按1递增,拼出总和之内任意一个整数。这个序列叫做超递增序列,它是解决背包问题的基础。3、拼出总和之内任意一个整数可以由这个序列中的一些数构成,且构成方法唯一,据说是密码学中的NP定理。譬如说这个数列总合中20这个数,只能由16+4一种方法构成,由此延伸出来,如果综合中这个数据代表一个权值,我们可以解出它的所有构成参数(操作),如20这个数据,我们可以挨个和序列中每一项按位与,得出来如果不等于0,就说明他是由这个数构成的。

保存权值到int还是varchar对于我们来说是个问题,当然,保存字符串的好处是运算压力小。我们可能听过一个故事,就是把这个超递增序列延伸到第64 项,就是那个术士和皇帝在国际象棋棋盘上要米粒的传说。64项的和是一个天文数字!但计算机本身就是一个只认识二进制的机器!很多程序员整天只关心架构,甚至不知道或者不关心位操作是什么玩意,当然我们有朋友担心数据库的int不够长,那么既然可以保存一个只有0、1组成的varchar字符串,为什么不能保存一个十六进制的字符串,有人规定varchar只能保存01吗?十六进制串的长度正好是二进制的四分之一。

由此我们可以无限制的扩展权值操作。

在最近的项目里,我对权限的控制分成两个部分,第一就是用户体验上,我设置了一个权限标签,从数据库中抽取权限信息,然后做到标签里,也凑或算成是界面AOP了,第二就是底层的拦截,用了Spring 的AOP,为的是防止权限冲突,双管齐下。暂时解决权限所需,另外在算法上我用了16进制的权限判别代码,虽然配置较麻烦,写完代码还要写文档说明,不过也解决了权限繁杂又多的问题,暂时就这样了,嘿嘿,以后有空再研究。

用户认证管理设计方案

1 设计思路

为了设计一套具有较强可扩展性的用户认证管理,需要建立用户、角色和权限等数据库表,并且建立之间的关系,具体实现如下。

1.1 用户

用户仅仅是纯粹的用户,用来记录用户相关信息,如用户名、密码等,权限是被分离出去了的。用户(User)要拥有对某种资源的权限,必须通过角色(Role)去关联。

用户通常具有以下属性:

ü编号,在系统中唯一。

ü名称,在系统中唯一。

ü用户口令。

ü注释,描述用户或角色的信息。

1.2 角色

角色是使用权限的基本单位,拥有一定数量的权限,通过角色赋予用户权限,通常具有以下属性:

ü编号,在系统中唯一。

ü名称,在系统中唯一。

ü注释,描述角色信息

1.3 权限

权限指用户根据角色获得对程序某些功能的操作,例如对文件的读、写、修改和删除功能,通常具有以下属性:

ü编号,在系统中唯一。

ü名称,在系统中唯一。

ü注释,描述权限信息

1.4 用户与角色的关系

一个用户(User)可以隶属于多个角色(Role),一个角色组也可拥有多个用户,用户角色就是用来描述他们之间隶属关系的对象。用户(User)通过角色(Role)关联所拥有对某种资源的权限,例如

l用户(User):

UserID UserName UserPwd

1张三xxxxxx

2 李四xxxxxx

……

l角色(Role):

RoleID RoleName RoleNote

01 系统管理员监控系统维护管理员

02 监控人员在线监控人员

03 调度人员调度工作人员

04 一般工作人员工作人员

……

l用户角色(User_Role):

UserRoleID UserID RoleID UserRoleNote

1 1 01 用户“张三”被分配到角色“系统

管理员”

2 2 02 用户“李四”被分配到角色“监控

人员”

3 2 03 用户“李四”被分配到角色“调度

人员”

……

从该关系表可以看出,用户所拥有的特定资源可以通过用户角色来关联。

1.5 权限与角色的关系

一个角色(Role)可以拥有多个权限(Permission),同样一个权限可分配给多个角色。例如:

l角色(Role):

RoleID RoleName RoleNote

01 系统管理员监控系统维护管理员

02 监控人员在线监控人员

03 调度人员调度工作人员

04 一般工作人员工作人员

……

l权限(Permission):

PermissionID PermissionName PermissionNote

0001增加监控允许增加监控对象

0002修改监控允许修改监控对象

0003删除监控允许删除监控对象

0004察看监控信息允许察看监控对象

……

l角色权限(Role_Permission):

RolePermissionID RoleID PermissionID RolePermissionNote

101 0001 角色“系统管理员”具有权限“增加监控”

201 0002 角色“系统管理员”具有权限“修改监控”

301 0003 角色“系统管理员”具有权限“删除监控”

401 0004 角色“系统管理员”具有权限“察看监控”

502 0001 角色“监控人员”具有权限“增加监控”

602 0004 角色“监控人员”具有权限“察看监控”

……

由以上例子中的角色权限关系可以看出,角色权限可以建立角色和权限之间的对应关系。

1.6 建立用户权限

用户权限系统的核心由以下三部分构成:创造权限、分配权限和使用权限。

第一步由Creator创造权限(Permission),Creator在设计和实现系统时会划分。利用存储过程CreatePermissionInfo

(@PermissionName,@PermissionNote)创建权限信息,指定系统模块具有哪些权限。

第二步由系统管理员(Administrator)创建用户和角色,并且指定用户角色(User-Role)和角色权限(Role-Permission)的关联关系。

1)具有创建用户、修改用户和

删除用户的功能:

Administrator

l存储过程CreateUserInfo(@UserName,@UserPwd)创建用户信息;

l存储过程ModifyUserInfo(@UserName,@UserPwd)修改用户信息;

l存储过程DeleteUserInfo(@UserID)删除用户信息;

2)具有创建角色和删除角色

的功能:Administrator l存储过程CreateRoleInfo(@RoleName,@RoleNote)创建角色信息;

l存储过程DeleteRoleInfo(@RoleID)删除角色信息;

3)Administrator具有建立用户和角色、角色和权限的关联关系功能:

l存储过程GrantUserRole(@UserID,@RoleID,@UserRoleNote)建立用户和角色的关联关系;

l存储过程DeleteUserRole(@UserRoleID)删除用户和角色的关联关系;

l存储过程

GrantRolePermission(@RoleID,@PermissionID,@RolePermissionNote)建立角色和权限的关联关系;

l存储过程DeleteRolePermission(@RolePermissionID)删除角色和权限的关联关系;

第三步用户(User)使用Administrator分配给的权限去使用各个系统模块。利用存储过程GetUserRole(@UserID, @UserRoleID

output),GetRolePermission(@RoleID,@Role-

-PermissinID output)获得用户对模块的使用权限。

1.7 用户认证实现

当用户通过验证后,由系统自动生成一个128位的TicketID保存到用户数据库表中,建立存储过程Login(@UserID,@UserPwd, @TicketID output)进行用户认证,认证通过得到一个TicketID,否则TicketID为null。其流程图如下:

图1 Login流程图

得到TicketID后,客户端在调用服务端方法时传递TicketID,通过存储过程JudgeTicketPermission(@TicketID,@PermissionID)判断TicketID 对应的用户所具有的权限,并根据其权限进行方法调用。

当用户退出系统时,建立存储过程Logout(@UserID)来退出系统。当用户异常退出系统时,根据最后的登陆时间(LastSignTime)确定用户的TickeID,建立存储过程ExceptionLogout(@UserID,@LastSignTime)处理用户的异常退出。

图2 Logout流程图

WebService可以采用SoapHeader中写入TicketID来使得TicketID从客户端传递给服务端。.Net Remoting可以采用CallContext类来实现

TicketID从客户端传递给服务端。

2 数据库设计

2.1 数据库表

图3 数据库关系图

2.2 数据库表说明

2.2.1 用户表(Static_User)

Static_User

用“位”来存储、修改用户权限的方法

以前我用记录方式,如A用户有3个模块权限,则A有三条记录

看到别人的程序里有这种方法,感觉不错,给大家看看有没有优点可取。用户权限用一个int字段表示,可以放32位,

如果有第1,3,4模块的权限则,值为1 4 8=13

___________________

_userId_____userQx___

A?????????????? |???? 13

_________|___________

增加权限具体实现

如增加第四个模块的权限,4的二进制值8

update qxUser set userQx = userQx|8 where userId='A'

删除第四个模块的权限

update qxUser set userQx = userQx&~8 where userId='A'

如果删除第四个模块,则不加条件就可以了

update qxUser set userQx = userQx&~8

以上在SqlServer2000企业版通过。

欢迎大家讨论,有更好的方法大家共享呀~~~

在Java 里

34&2 !=0就行了。

通过二,三两步的理解,相信这篇文章就不会生涩了!~

首先上文权限设计拙见(1)中只是想记录下自己权限设计上的一点看法,以及将自己日常最常用的权限解决方案记录下来以供日后回顾,没想到有朋友关注此类的设计,那就只能先把代码拿出来献丑了,抛砖引玉,大家共同探讨学习

接着上文来说,上文所讨论的权限设计是一条思路,但既然是web应用,少不了数据库的支持,本文我们来讨论一下数据库的设计。(以下想法及思路仅仅代表本人拙见)说到权限的数据库设计,必先理清权限中几种实体及其关系,此部分想必有过设计权限经验的同仁都知道怎么设计了,网上摆渡一下也是一裤衩子一裤衩子的,我们就在最平凡直观的数据库关系的基础上来建立权限。下面是我的几个表(所有的表都带有一个pk_id,作为表的自动生成的唯一主键):

用户表(T_UserInfo):

1

/*================================================= =============*/

2/* Table: T_UserInfo */

3

/*================================================= =============*/

4create table T_UserInfo

5(

6 pk_id NUMBER not null,

7 name VARCHAR2(20),

8 sex BOOLEAN,

9 age int,

10 emp_num NUMBER,

11 polity int,

12 unit VARCHAR2(50),

13 department VARCHAR2(20),

14 specialty int,

15 position VARCHAR2(10),

16 offtel VARCHAR2(20),

17 famtel VARCHAR2(20),

18 post_state VARCHAR2(10),

19 remark VARCHAR2(100),

20constraint PK_T_USERINFO primary key (pk_id)

21);

实战经验:用户表就不多说了,都是一些常用字段,年龄、电话、职位等,建议大家建立一个通用一些,字段多一些的一个用户表,便于以后扩展,以后如果有特殊需求,不用扩这个基本表,可以通过主外键关系来新建一个表,用于扩充字段

角色表(T_RoleInfo):

1

/*================================================= =============*/

2/* Table: T_RoleInfo */

3

/*================================================= =============*/

4create table T_RoleInfo

5(

6 pk_id number not null,

7 role_name VARCHAR2(20),

8 role_desc VARCHAR2(100),

9 parent_role_id NUMBER,

10constraint PK_T_ROLEINFO primary key (pk_id)

11);

角色表中需要说明的就一个parent_role_id父角色id,此字段用来扩展角色的继承关系。

资源表(T_ResourceInfo):

1

/*================================================= =============*/

2/* Table: T_ResourceInfo */

3

/*================================================= =============*/

4create table T_ResourceInfo

5(

6 pk_id NUMBER not null,

7 module_name VARCHAR2(20),

8 module_code VARCHAR2(10),

9 module_desc VARCHAR2(100),

10 privilege_name VARCHAR2(10),

11 privilege_code CHAR,

12 privilege_desc VARCHAR2(100),

13constraint PK_T_RESOURCEINFO primary key (pk_id)

14);

15

这个表需要说明的就比较多了,首先该表用来记录资源与资源权限,我这边所谓的资源就是实体,就是数据库表,角色需要对应到资源,有些角色对该资源有权限,有些角色则对该资源无权限,角色可对此资源操作的权限也不同。说白了,就是不同的角色对不同的数据库表的操作权限不同。因此我们这里的资源就是数据库表。

module_name:资源名;module_code:资源代码(存放数据库表名);

privilege_name:权限名;privilege_code:权限代码(代表权限的code,也就是我们上文所说的权值)

例如角色a对数据库表T_UserInfo有添加与删除的权限则该表应该按照如下配置:

module_name:人员信息;

module_code:T_UserInfo

privilege_name:添加与删除

privilege_code:6

这里我们假设的是2的0次方为添加权限,2的1次方为添加权限,2的2次方为删除权限,2的3次方为更新权限,则拥有添加与删除权限就应该为2的1次方+2 的2次方=6,其实2的几次方代表什么含义我们可以另外开个数据库表来配置(或者xml文件)此处我们忽略这些步骤。当然如果你的权限较多,譬如你还希望a这个角色对人员信息表有上传得权限,我们可以将将上传权限定义为2的4次方,16,16的16进制数为10,记录在数据库里的形式应该为0x10如果a 角色拥有添加、删除、更新、上传权限,则a的权值应该为2的1次方+2的2次方+2的3次方+2的4次方=30,用16进制来表示就应该为0x1E,记录16进制数据,你不用担心位数不够。

剩余的就是几张关系表了:

人员角色关系表(T_R_User_Role):

1

/*================================================= =============*/

2/* Table: T_R_user_role */

3

/*================================================= =============*/

4create table T_R_user_role

5(

6 pk_id NUMBER not null,

7user_id NUMBER,

8 role_id NUMBER,

9constraint PK_T_R_USER_ROLE primary key (pk_id)

10);

11

角色资源关系表(T_R_Role_Resource)

1

/*================================================= =============*/

2/* Table: T_R_role_resource */

3

/*================================================= =============*/

4create table T_R_role_resource

5(

6 pk_id NUMBER not null,

7 role_id NUMBER,

8 res_id NUMBER,

9constraint PK_T_R_ROLE_RESOURCE primary key (pk_id)

10);

11

当然如果你不怕麻烦,可以添加进去组(group)、系统(system)、组织(organization),建立起一套属于你自己的完整的权限解决方案,作为系统无关的模块去套用到每个你所架构的应用中去,那是一件极爽的事情。

关于用户权限的数据库设计

1 设计思路 为了设计一套具有较强可扩展性的用户认证管理,需要建立用户、角色和权限等数据库表,并且建立之间的关系,具体实现如下。 1.1 用户 用户仅仅是纯粹的用户,用来记录用户相关信息,如用户名、密码等,权限是被分离出去了的。用户(User)要拥有对某种资源的权限,必须通过角色(Role)去关联。 用户通常具有以下属性: 编号,在系统中唯一。 ü名称,在系统中唯一。 ü用户口令。 ü注释,描述用户或角色的信息。 1.2 角色 角色是使用权限的基本单位,拥有一定数量的权限,通过角色赋予用户权限,通常具有以下属性: ü编号,在系统中唯一。 ü名称,在系统中唯一。 ü注释,描述角色信息 1.3 权限 权限指用户根据角色获得对程序某些功能的操作,例如对文件的读、写、 修改和删除功能,通常具有以下属性: ü编号,在系统中唯一。 ü名称,在系统中唯一。 ü注释,描述权限信息 1.4 用户与角色的关系 一个用户(User)可以隶属于多个角色(Role),一个角色组也可拥有多个用户,用户角色就是用来描述他们之间隶属关系的对象。用户(User)通过角色(Role)关联所拥有对某种资源的权限,例如 l 用户(User): UserID UserName UserPwd 1 张三 xxxxxx 2 李四 xxxxxx …… l 角色(Role): RoleID RoleName RoleNote 01 系统管理员监控系统维护管理员 02 监控人员在线监控人员 03 调度人员调度工作人员 04 一般工作人员工作人员…… 从该关系表可以看出,用户所拥有的特定资源可以通过用户角色来关联。 1.5 权限与角色的关系 一个角色(Role)可以拥有多个权限(Permission),同样一个权限可分配给多个角色。例如: l 角色(Role): RoleID RoleName RoleNote 01 系统管理员监控系统维护管理员 02 监控人员在线监控人员

用户权限设计

用户角色权限设计 实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的“非法用户”将会将他们彻底的“拒之门外”。下面就让我们一起了解一下如何设计可以满足大部分B/S系统中对用户功能权限控制的权限系统。 需求陈述 ?不同职责的人员,对于系统操作的权限应该是不同的。优秀的业务系统,这是最基本的功能。 ?可以对“组”进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便的事情。所以,系统中就提出了对“组”进行操作的概念,将权限一致的人员编入同一组,然后对该组进行权限分配。 ?权限管理系统应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。就像是组件一样的可以被不断的重用,而不是每开发一套管理系统,就要针对权限管理部分进行重新开发。 ?满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统之间,功能权限是可以重用的,而资源权限则不能。 关于设计 借助NoahWeb的动作编程理念,在设计阶段,系统设计人员无须考虑程序结构的设计,而是从程序流程以及数据库结构开始入手。为了实现需求,数据库的设计可谓及其重要,无论是“组”操作的概念,还是整套权限管理系统的重用性,都在于数据库的设计。 我们先来分析一下数据库结构: 首先,action表(以下简称为“权限表”),gorupmanager表(以下简称为“管理组表”),以及master表(以下简称为“人员表”),是三张实体表,它们依次记录着“权限”的信息,“管理组”的信息和“人员”的信息。如下图:

系统权限管理设计方案(优选.)

OA系统权限管理设计方案 l 不同职责的人员,对于系统操作的权限应该是不同的。优秀的业务系统,这是最基本的功能。 l 可以对“组”进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便的事情。所以,系统中就提出了对“组”进行操作的概念,将权限一致的人员编入同一组,然后对该组进行权限分配。 l 权限管理系统应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。就像是组件一样的可以被不断的重用,而不是每开发一套管理系统,就要针对权限管理部分进行重新开发。 l 满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统之间,功能权限是可以重用的,而资源权限则不能。 针对OA系统的特点,权限说明: 权限 在系统中,权限通过模块+动作来产生,模块就是整个系统中的一个子模块,可能对应一个菜单,动作也就是整个模块中(在B/S系统中也就是一个页面的所有操作,比如“浏览、添加、修改、删除”等)。将模块与之组合可以产生此模块下的所有权限。 权限组 为了更方便的权限的管理,另将一个模块下的所有权限组合一起,组成一个“权限组”,也就是一个模块管理权限,包括所有基本权限操作。比如一个权限组(用户管理),包括用户的浏览、添加、删除、修改、审核等操作权限,一个权限组也是一个权限。

角色 权限的集合,角色与角色之间属于平级关系,可以将基本权限或权限组添加到一个角色中,用于方便权限的分配。 用户组 将某一类型的人、具有相同特征人组合一起的集合体。通过对组授予权限(角色),快速使一类人具有相同的权限,来简化对用户授予权限的繁琐性、耗时性。用户组的划分,可以按职位、项目或其它来实现。用户可以属于某一个组或多个组。 通过给某个人赋予权限,有4种方式(参考飞思办公系统) A. 通过职位 a) 在职位中,职位成员的权限继承当前所在职位的权限,对于下级职位拥有的权限不可继承。 b) 实例中:如前台这个职位,对于考勤查询有权限,则可以通过对前台这个职位设置考勤查询的浏览权,使他们有使用这个对象的权限,然后再设置个,考勤查询权(当然也可以不设置,默认能进此模块的就能查询),则所有前台人员都拥有考勤查询的权利。 B. 通过项目 a) 在项目中,项目成员的权限来自于所在项目的权限,他们同样不能继承下级项目的权限,而对于项目组长,他对项目有全权,对下级项目也一样。 b) 实例中:在项目中,项目成员可以对项目中上传文档,查看本项目的文档,可以通过对项目设置一个对于本项目的浏览权来实现进口,这样每个成员能访问这个项目了,再加上项目文档的上传权和查看文档权即可。

数据库用户管理(用户管理,权限分配)

学习资料:数据库用户管理 SQL Server的安全包括服务器安全和数据安全两部分。服务器安全是指可以SQL Server数据库服务器的登录管理、数据库数据的访问安全等,数据安全则包括数据的完整性、数据库文件的安全性。因此,如果你准备访问SQL Server数据库的数据,你应该具有SQL Server登录帐户和访问数据库的权限。 下面逐一讲解如何创建登录帐户、如何创建数据库用户和如何给用户授权。 一、SQL Server身份验证 在登录SQL Server时,需要选择身份验证的方式,SQL Server支持以下两种身份验证。 Windows身份验证。 SQL Server身份验证。 简单地说,Windows身份验证是使用当前登录到操作系统的用户去登录,而SQL Server身份验证是使用SQL Server中建立的用户去登录。 登录验证通过以后,就可以像管理本机SQL Server一样来管理远程机上的SQL Server 服务。 二、建立登录帐户并赋予权限 与创建数据库一样,建立SQL Server数据库的登录名、用户名,为其赋予权限也有两种方式。 1)使用SQL Server Management Studio建立登录账户并赋予权限 2)使用T-SQL建立登录账户并赋予权限 1.在SQL Server Management Studio中建立登录账户并赋予权限在SQL Server Management Studio中,通常需要进行三步操作。 1)建立SQL Server登录名 在SQL Server Management Studio中,建立登录的步骤如下。 (1)在“安全性”节点下,右击“登录名”,在右键菜单中选择“新建登录名”选项。

JAVA用户角色权限数据库设计

实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的“非法用户”将会将他们彻底的“拒之门外”。下面就让我们一起了解一下如何设计可以满足大部分B/S系统中对用户功能权限控制的权限系统。 需求陈述 ?不同职责的人员,对于系统操作的权限应该是不同的。优秀的业务系统,这是最基本的功能。 ?可以对“组”进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便的事情。所以,系统中就提出了对“组”进行操作的概念,将权限一致的人员编入同一组,然后对该组进行权限分配。 ?权限管理系统应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。 就像是组件一样的可以被不断的重用,而不是每开发一套管理系统,就要针对权限管理部分进行重新开发。 ?满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统之间,功能权限是可以重用的,而资源权限则不能。 关于设计 借助NoahWeb的动作编程理念,在设计阶段,系统设计人员无须考虑程序结构的设计,而是从程序流程以及数据库结构开始入手。为了实现需求,数据库的设计可谓及其重要,无论是“组”操作的概念,还是整套权限管理系统的重用性,都在于数据库的设计。 我们先来分析一下数据库结构: 首先,action表(以下简称为“权限表”),gorupmanager表(以下简称为“管理组表”),以及master表(以下简称为“人员表”),是三张实体表,它们依次记录着“权限”的信息,“管理组”的信息和“人员”的信息。如下图:

关于用户权限的数据库设计

1设计思路 为了设计一套具有较强可扩展性的用户认证管理,需要建立用户、角色和权限等数据库表,并且建立之间的关系,具体实现如下。 1.1用户 用户仅仅是纯粹的用户,用来记录用户相关信息,如用户名、密码等,权限是被分离出去了的。用户(User)要拥有对某种资源的权限,必须通过角色(Role)去关联。 用户通常具有以下属性: 编号,在系统中唯一。 ü名称,在系统中唯一。 ü用户口令。 ü注释,描述用户或角色的信息。 1.2角色 角色是使用权限的基本单位,拥有一定数量的权限,通过角色赋予用户权限,通常具有以下属性: ü编号,在系统中唯一。 ü名称,在系统中唯一。 ü注释,描述角色信息 1.3权限 权限指用户根据角色获得对程序某些功能的操作,例如对文件的读、写、 修改和删除功能,通常具有以下属性: ü编号,在系统中唯一。 ü名称,在系统中唯一。 ü注释,描述权限信息 1.4用户与角色的关系 一个用户(User)可以隶属于多个角色(Role),一个角色组也可拥有多个用户,用户角色就是用来描述他们之间隶属关系的对象。用户(User)通过角色(Role)关联所拥有对某种资源的权限,例如l用户(User): UserID UserName UserPwd 1张三xxxxxx 2李四xxxxxx …… l角色(Role): RoleID RoleName RoleNote 01系统管理员监控系统维护管理员 02监控人员在线监控人员 03调度人员调度工作人员 04一般工作人员工作人员…… 从该关系表可以看出,用户所拥有的特定资源可以通过用户角色来关联。 1.5权限与角色的关系 一个角色(Role)可以拥有多个权限(Permission),同样一个权限可分配给多个角色。例如:l角色(Role): RoleID RoleName RoleNote 01系统管理员监控系统维护管理员 02监控人员在线监控人员

最经典用户权限管理模块设计

实现业务系统中的用户权限管理--设计篇 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的“非法用户”将会将他们彻底的“拒之门外”。下面就让我们一起了解一下如何设计可以满足大部分B/S系统中对用户功能权限控制的权限系统。 需求陈述 ?不同职责的人员,对于系统操作的权限应该是不同的。优秀的业务系统,这是最基本的功能。 ?可以对“组”进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便 的事情。所以,系统中就提出了对“组”进行操作的概念,将权限一致 的人员编入同一组,然后对该组进行权限分配。 ?权限管理系统应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。就像是组件一样的可以被不断的重用,而不是每开发一套 管理系统,就要针对权限管理部分进行重新开发。 ?满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统 之间,功能权限是可以重用的,而资源权限则不能。 关于设计 借助NoahWeb的动作编程理念,在设计阶段,系统设计人员无须考虑程序结构的设计,而是从程序流程以及数据库结构开始入手。为了实现需求,数据库的设计可谓及其重要,无论是“组”操作的概念,还是整套权限管理系统的重用性,都在于数据库的设计。 我们先来分析一下数据库结构: 首先,action表(以下简称为“权限表”),gorupmanager表(以下简称为“管理组表”),以及master表(以下简称为“人员表”),是三张实体表,它们依次记录着“权限”的信息,“管理组”的信息和“人员”的信息。如下图:

数据库用户权限划分共5页word资料

数据库用户权限划分 一、数据库公共对象设定 公共对象是指在数据库中大家经常要用到的一些参数表、视图等实例。以及由某个开发的可以共用的一些函数、过程、程序集等功能模块。凡是可以连接该数据库中用户均具备此项权限。可在对象属性中设置此权限。 二、数据库用户权限设定 用户权限是指用户对于该数据库中的所有对象拥有的权限。用户不需要对特定对象设置即可拥有。可在数据库上设置此权限。 三、局部权限设定 局部权限是指用户只对数据库中的部分对象拥有权限。可在登录属性的用户映射中设置此权限。其中自定义角色(按需)是指自定义的一组数据库角色。 四、数据库角色权限设定 数据库角色是一种数据库对象。可根据数据库的对象应用情况设定选取的对象范围,然后设置相关权限。可在当前库“安全”—“角色”中设置此角色。 五、案例(保险库insurance权限划分) (一)公共表权限设置(创建位置:服务器—数据库—表) dbo.Par_Area_mp dbo.Par_BJ_8_area dbo.Par_Status dbo.Par_徐汇闵行路名 (二)添加数据库角色(创建位置:服务器—数据库—安全性—角色—数据库角色) i.保险查询 ii.保险更新 iii.全库查询 iv.全库更改 v.全库更新 vi.外部库查询

vii.外部库更新 (三)创建用户(创建位置:服务器—安全性—登录名),并设置数据库角色。

Test

(四)连接使用 i.只连接了有查看权限的表 ii.可以进行查询操作 iii.不可以创建表 iv.不可以删除表 v.不可以对表中数据进行删除 vi.不可以对表进行写入

某公司金蝶K3用户权限设置流程

金蝶K3用户权限设置流程 一、分公司提出权限申请 由分公司权限使用人填写《金蝶软件用户权限申请(变更)表》(附件1),以下简称权限申请表,报分公司财务负责人签字批准,传扫描件至总部财务,核算中心审批后半个工作日内授权完结(新成立公司,需要新建账套时,由财务负责人统一填写权限申请表)。 二、总部审核 总部收到分公司申请后,打印出分公司传来的权限申请表扫描件,报财务总监或核算中心负责人审核签字并在半个工作日内指定相关人员进行授权,授权人也需在权限申请表签字。 三、用户权限设置操作 (一)新增用户 1.进入K3主界面【系统设置】-【用户管理】,双击右边的【用户管理】明细功能,进入用户管理平台,如图1; 图1 2.选择【用户管理】-【新建用户】,弹出新增用户界面,如图2

图2 3.在新增用户界面,进行如下操作: (1)输入【用户】-【用户姓名】; (2)【认证方式】选择密码认证,密码可为空,由用户本人在帐套登录页面设置,也可先设置密码,再由用户本人在帐套登录页面修改; (3)勾选【权限属性】-【用户可以进行业务操作】; (4)选中【用户组】相应用户组点【添加】可以将用户添加到相应用户组里; (5)【用户角色】可不予操作。 4.完成上述操作后,点【确定】按钮。 (二)财务经理权限设置 1.进入K3主界面【系统设置】-【用户管理】,选中需要为其授权的用户; 2.选择左上角菜单栏【用户管理】-【功能权限管理】,进入用户权限管理界面,如图3;

图3 4.根据目前集团启用的K3模块,只需对基础资料、数据引入引出、系统参数配置、数据交换平台、总账、固定资产、报表、现金管理、现金流量表、仓存管理系统、存货核算管理系统这9个权限组的查询权和管理权进行设置。具体设置情况见《金蝶K3用户权限设置表》(附件2),财务经理授予这9个权限组的全部查询权与管理权,勾选完成,点右边的【授权】按钮。 5. 根据《金蝶K3用户权限设置表》里“高级设置”栏的说明,对财务经理权限进行高级设置: (1)点击图3右边的【高级】按钮,进入用户权限高级设置页面,如图4, 图4

用户管理模块设计

用户管理模块设计 用户管理模块提供对用户信息的管理,包括用户注册、用户登录、用户权限管理、用户信息修改以及用户等级修改。 1、用户注册 根据用户表,设计相应的注册页面,注册页面包括用户名、密码、邮箱、部门、电话等信息,当用户进行注册时,填写这些信息,用户名是不能与已注册的用户名相同,填写完成后,提交注册请求,后台相应的Action会响应该动作,首先获取到页面发来的参数,然后将这些参数通过Session 对象写入到数据库中,最后向用户提示注册成功与否。 2、用户登录 用户注册之后,就可以通过账户和密码登陆至平台。当用户提交登陆请求,后台相应的Action 会响应该动作,首先获取到页面发来的用户名和密码,然后通过Query对象查询该用户是否存在且密码正确,最后将根据结果给用户发送跳转页面,如果用户存在且密码正确,则可进入平台主页面,否则,提示登陆错误信息。 3、用户权限管理 用户权限管理将用户分为普通用户和管理员,他们具有不同的权限,他们各自的权限如表1所示。此平台首次使用时,会内置一个超级管理员,有修改用户等级的权限。 表1 不同用户权限授权

定义一个权限拦截器,它的功能是用来检验用户类型,对每一个需要管理权限的操作均进行拦截,同时检验用户类型,判断该用户类型是否可执行该操作,即可达到权限管理的作用。如果某操作在当前用户等级对应的操作范围内,则可正常访问,否则跳转到提示页面,提示用户权限不足。 4、用户信息修改 用户管理模块提供用户修改自己信息的功能。当进入信息修改界面,首先会获取Session中当前用户信息,供用户在当前信息基础上进行信息修改。当用户填写完修改信息,并发送修改请求后,后台将响应用户的请求,首先得到所有用户修改参数,然后将修改的信息设置到该对象中,最后更新数据库,将更新结果发送给用户。 青山埋白骨,绿水吊忠魂。

数据库用户权限划分

(Database Department ) Tel: (86-10)51652500 Fax: (86-10)51388462 数据库用户权限划分 一、 数据库公共对象设定 公共对象是指在数据库中大家经常要用到的一些参数表、视图等实例。以及由某个开发的可以共用的一些函数、过程、程序集等功能模块。凡是可以连接该数据库中用户均具备此项权限。可在对象属性中设置此权限。 公共表 公共视图公共函数 公共过程 插入 查看定义√√ 更改更新 接管所有权控制删除选择√√引用√√ √执行 √ √ 对象 公共对象权限 二、 数据库用户权限设定 用户权限是指用户对于该数据库中的所有对象拥有的权限。用户不需要对特定对象设置即可拥有。可在数据库上设置此权限。

Tel: (86-21)51695700 Fax: (86-10)85895199 Website: https://www.wendangku.net/doc/b32366194.html, Zip:200030 库用户权限1DBA (参见角色)数据修改数据查询局部(参见角色)库用户权限2DBA (参见角色)数据修改数据查询 局部 (参见角色) 备份日志√更改任意对称密钥√备份数据库√更改任意非对称密钥√插入√√更改任意服务√查看定义√更改任意架构√查看数据库状态√更改任意角色 √创建XML 架构集合√更改任意路由 √创建表√√更改任意全文索引√创建程序集√更改任意数据空间 √创建队列 √更改任意数据库DDL 触发器√创建对称密钥√更改任意数据库事件通知√创建服务√更改任意消息类型√创建规则√√更改任意应用程序角色√创建过程√√更改任意用户√创建函数√√更改任意远程服务绑定√创建架构√更改任意约定√创建角色√更改任意证书√创建类型√更新√√创建路由√检查点√创建默认值√√接管所有权√创建全文目录√√控制√创建视图√√控制聚合 √创建数据库DDL 事件通知√连接 √√√√创建同义词√连接复制√创建消息类型√删除√√创建远程服务绑定√身份验证√创建约定√显示计划√创建证书√选择√√√订阅查询通知√引用√√更改√√执行√√更改任意程序集 √

sql server 服务账户和权限管理配置

大多数服务及其属性可通过使用SQL Server 配置管理器进行配置。以下是在C 盘安装Windows 的情况下最新的四个版本的路径。 安装的服务SQL Server 根据您决定安装的组件,SQL Server 安装程序将安装以下服务: ?SQL Server Database Services - 用于SQL Server 关系数据库引擎的服务。可执行文件为\MSSQL\Binn\sqlservr.exe。 ?SQL Server 代理 - 执行作业、监视SQL Server、激发警报以及允许自动执行某些管理任务。SQL Server 代理服务在SQL Server Express 的实例上存在,但处于禁用状态。可执行文件为\MSSQL\Binn\sqlagent.exe。 ?Analysis Services - 为商业智能应用程序提供联机分析处理(OLAP) 和数据挖掘功能。可执行文件为\OLAP\Bin\msmdsrv.exe。

?Reporting Services - 管理、执行、创建、计划和传递报表。可执行文件为\Reporting Services\ReportServer\Bin\ReportingServicesService.exe。 ?Integration Services - 为Integration Services 包的存储和执行提供管理支持。可执行文件的路径是\130\DTS\Binn\MsDtsSrvr.exe ?SQL Server Browser - 向客户端计算机提供SQL Server 连接信息的名称解析服务。 可执行文件的路径为c:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe ?全文搜索 - 对结构化和半结构化数据的内容和属性快速创建全文索引,从而为SQL Server 提供文档筛选和断字功能。 ?SQL 编写器 - 允许备份和还原应用程序在卷影复制服务(VSS) 框架中运行。 ?SQL Server 分布式重播控制器 - 跨多个分布式重播客户端计算机提供跟踪重播业务流程。 ?SQL Server Distributed Replay 客户端 - 与Distributed Replay 控制器一起来模拟针对SQL Server 数据库引擎实例的并发工作负荷的一台或多台Distributed Replay 客户端计算机。 ?SQL Server 受信任的启动板 - 用于托管Microsoft 提供的外部可执行文件的可信服务,例如作为R Services (In-database) 的一部分安装的R 运行时。附属进程可由 启动板进程启动,但将根据单个实例的配置进行资源调控。启动板服务在其自己的用 户帐户下运行,特定注册运行时的各个附属进程将继承启动板的用户帐户。附属进程 将在执行过程中按需创建和销毁。 服务属性和配置

一个用户权限管理模块的设计思路

一个用户权限管理模块的设计思路: 1. 权限资源(功能资源) 系统的所有权限信息。权限具有上下级关系,是一个树状的结构。如下: 系统管理 单位管理 查看单位 添加单位 修改单位 删除单位 部门管理 查看部门 添加部门 修改单位 删除单位 对于每个权限,又存在两种情况:1可访问;2可授权,部分表中采用拥有类型做判断(0可访问,1即可访问也可授权) 2. 用户 系统的具体操作者,用户可以自己拥有权限信息,可以归属于0~n个角色,可属于0~n 个组。他的权限集是自身具有的权限+所属的各角色具有的权限+所属的各组具有的权限的合集。它与权限、角色、组之间的关系都是n对n的关系。 3. 角色 为了对拥有相似权限的用户进行分类管理,因此定义角色,例如:超级管理员,一般管理员、一般用户等角色。在这里同时也让角色具有上下级关系,形成树状视图,父级角色的权限是自身及它的所有子角色的权限的综合。 4. 组 为了更好地管理用户,对用户进行分组归类,简称为用户分组。组也具有上下级关系,可以形成树状视图。在实际应用中,我们知道,组也可以具有自己的角色信息、权限信息。 就好比是javaeye中的圈子,一个圈子可以拥有多个会员,同时一个会员也可以加入多个圈子,对于不同的圈子又有不同的权限信息。(组的解释:例如一个公司中,不同的部门即可划分不同的组来进行权限的分配) 针对以上描述,结构关系如下: 整个模块分为组权限管理、角色权限管理、用户权限管理。 其中组权限管理:组权限 = 所属角色的权限合集 + 组自身的权限。

角色权限管理:角色权限 = 角色自身权限。 用户权限管理:用户权限 = 所属角色权限合集 + 所属组权限合集 + 用户自身权限。 注意:因为组和角色都具有上下级关系,所以下级的组或角色的权限只能在自己的直属上级的权限中选择,下级的组或者角色的总的权限都不能大于直属上级的总权限。 欢迎大家拍砖,给点建议。

guest用户权限设置

来宾账户(guest)或者受限用户(user)的 权限设置 当你的电脑经常需要被别人使用,但是你又不希望别人看你的某些重要文件或者不允许别人运行某些应用程序或者担心自己系统某些重要参数被修改时,你可以先以管理员身份登录Windows系统,参照以下几条作相应设置,然后开通来宾账户或者新建一个普通user账户(不是管理员,而是受限用户),让别人用这个账户登录系统,这时你就可以放心你的电脑任意让别人折腾。 一、限制用户对文件的访问权限 如果程序所在的磁盘分区文件系统为NTFS格式,管理员账户可以利用NTFS文件系统提供的文件和文件夹安全选项控制用户对程序及文件的访问权限。通常情况下,一个应用程序安装到系统后,本地计算机的所有账户都可以访问并运行该应用程序。如果取消分配给指定用户对该应用程序或文件夹的访问权限,该用户也就失去了运行该应用程序的能力。 例如,要禁止受限用户运行Outlook Express应用程序,可以进行如下的操作: (1)、以administrator账户登录系统,如果当前系统启用了简单文件共享选项,需要将该选项关闭。具体做法是,在Windows浏览器窗口点击“工具”菜单下的“文件夹选项”,点击“查看”选项页,取消“使用简单文件共享”选项的选择,点击“确定”。 (2)、打开Program Files文件夹,选中Outlook Express文件夹并单击右键,选择“属性”。(3)、点击“安全”选项页,可以看到Users组的用户对该文件夹具有读取和运行的权限,点击“高级”。 (4)、取消“从父项继承那些可以应用到子对象的权限项目,包括那些再次明确定义的项目”选项的选择,在弹出的提示信息对话框,点击“复制”,此时可以看到用户所具有的权限改为不继承的。 (5)、点击“确定”,返回属性窗口,在“用户或组名称”列表中,选择Users项目,点击“删除”,点击“确定”,完成权限的设置。 要取消指定用户对文件或程序的访问限制,需要为文件或文件夹添加指定的用户或组并赋予相应的访问权限。 这种方法允许管理员针对每个用户来限制他访问和运行指定的应用程序的权限。但是这需要一个非常重要的前提,那就是要求应用程序所在的分区格式为NTFS,否则,一切都无从谈起。 对于FA T/FA T32格式的分区,不能应用文件及文件夹的安全选项,我们可以通过设置计算机的策略来禁止运行指定的应用程序。 二、启用“不要运行指定的Windows应用程序”策略 在组策略中有一条名为“不要运行指定的Windows应用程序”策略,通过启用该策略并添加相应的应用程序,就可以限制用户运行这些应用程序。设置方法如下: (1)、在“开始”“运行”处执行gpedit.msc命令,启动组策略编辑器,或者运行mmc命令启动控制台,并将“组策略”管理单元加载到控制台中; (2)、依次展开“…本地计算机?策略”“用户设置”“管理模板”,点击“系统”,双击右侧窗格中的“不要运行指定的Windows应用程序”策略,选择“已启用”选项,并点击“显示”。 (3)、点击“添加”,输入不运行运行的应用程序名称,如命令提示符cmd.exe,点击“确定”,此时,指定的应用程序名称添加到禁止运行的程序列表中。 (4)、点击“确定”返回组策略编辑器,点击“确定”,完成设置。

用户权限管理系统需求分析

软件需求分析报告目录 1.引言 1.1 项目简介 本文档对通用用户权限管理系统的总体设计、接口设计、界面总体设计、数据结构设计、系统出错处理设计以及系统安全数据进行了说明。 1.2 编写说明 1.3参考资料 《通用权限管理系统需求规格说明书》 《通用权限管理系统数据库设计说明书》

2.目标 2.1概述 权限系统一直以来是我们应用系统不可缺少的一个部分,若每个应用系统都重新对系统的权限进行设计,以满足不同系统用户的需求,将会浪费我们不少宝贵时间,所以花时间来设计一个相对通用的权限系统是很有意义的。 本系统的设计目标是对应用系统的所有资源进行权限控制,比如应用系统的功能菜单、各个界面的按钮控件等进行权限的操控。2.2系统目标 系统的目标包括如下三点: (1)对应用系统的所有资源进行权限控制,比如应用系统的功能菜单、各个界面的按钮控件等进行权限的操控; (2)完善用户、角色、组织、资源、操作的管理功能,其中的组织管理模块只提供组织视图,不参与权限的控制管理。 (3)开发人员开发新的系统功能,通过资源和角色模块进行操作管理。使用系统管理员身份登陆,直接将访问路径作对角色资源授权给操作,实现资源访问控制管理。 2.2.1 总目标 本系统提供一个调用简单、可复用性高、满足一般需求的权限管理模块,并为需要对权限管理的系统节省开发本。 2.2.2 性能目标 1、要求下载和安装速度快,响应时间快。

2、要求系统可适用于不同操作平台。 3、要求系统的可维护性和实用性强。 4、要求系统有一定的检错能力。 5、要求系统支持多用户同时操作,但管理者与用户不能同时操作。 2.2.3 功能目标 本系统的设计目标是对应用系统的所有资源进行权限控制,比如应用系统的功能菜单、各个界面的按钮控件等进行权限的操控。 2.3 目标说明 3.结构 3.1系统需求结构 系统采用B/S架构模式,基于 BNFW开发,服务封装了对后台数据操纵的细节,并提供安全调用接口. WEB 应用程序通过接口访问系统服务,执行用户操作并返回结果。系统采用SQL SERVER数据库和tomcat web应用服务器开发,部署在 Linux和windows服务器下运行。 3.2 需求结构的说明 用户权限管理系统概貌如图所示:

用户操作及权限控制概要

实验14、用户操作及权限控制 【实验目的】 1、通过实验掌握Windows 2000server帐号的操作。 2、通过实验掌握Windows 2000server帐号的权限操作。 【实验内容】 1、Active Directory 用户和计算机管理。 2、Windows2000sever的用户帐号操作。 3、用户权限控制操作。 【实验器材】 每人1台计算机。 【预备知识】 用户和计算机是活动目录中的对象,用户帐号能够让用户以授权的身份登录到计算机和域中并访问其中资源。帐号为用户或计算机访问网提供了安全凭证,一般包含账号名和密码两部分。每一个运行 Windows 2000server的计算机在加入到域时都需要一个计算机帐号,就象用户帐号一样,被用来验证和审核计算机的登录过程和访问域资源。 在Windows2000 Server 中,一个用户帐号包含了用户的名称、密码、所属组、个人信息、通讯方式等信息,在添加一个用户帐号后,它被自动分配一个安全标识 SID ,这个标识是唯一的,即使帐号被删除,它的 SID 仍然保留,如果在域中再添加一个相同名称的帐号,它将被分配一个新的 SID,在域中利用帐号的SID来决定用户的权限。 【实验步骤】 一、Active Directory 用户和计算机管理 1、添加用户帐号 步骤 1 首选启动 Active Directory 用户和计算机管理器→单击 User 容器会看到在安装 Active Directory 时自动建立的用户帐号。 步骤2 单击操作→新建→用户→在创建新对象对话框中输入用户的姓名、登录名,其中的下层登录名是指当用户从运行 WindowsNT/98 等以前版本的操作系统的计算机登录网络所使用的用户名,如图:

sql server 用户访问权限设置

sql server 用户访问权限设置: /*--示例说明 示例在数据库pubs中创建一个拥有表jobs的所有权限、拥有表titles 的SELECT权限的角色r_test 随后创建了一个登录l_test,然后在数据库pubs中为登录l_test创建了用户账户u_test 同时将用户账户u_test添加到角色r_test中,使其通过权限继承获取了与角色r_test一样的权限 最后使用DENY语句拒绝了用户账户u_test对表titles的SELECT权限。 经过这样的处理,使用l_test登录SQL Server实例后,它只具有表jobs 的所有权限。 --*/ USE pubs --创建角色 r_test EXEC sp_addrole 'r_test' --授予 r_test 对 jobs 表的所有权限 GRANT ALL ON jobs TO r_test --授予角色 r_test 对 titles 表的 SELECT 权限 GRANT SELECT ON titles TO r_test --添加登录 l_test,设置密码为pwd,默认数据库为pubs EXEC sp_addlogin 'l_test','pwd','pubs' --为登录 l_test 在数据库 pubs 中添加安全账户 u_test EXEC sp_grantdbaccess 'l_test','u_test' --添加 u_test 为角色 r_test 的成员 EXEC sp_addrolemember 'r_test','u_test' -------------------------------补充--------------

win7用户权限设置

WIN7如何让来宾账户无法访问本地磁盘文件 步鄹: 双击我的电脑,选择“菜单栏”的“工具”-“文件夹选项”-“查看”-去掉“使用简单文件共享” 点确定。 此时我们对任意文件夹或者分区右键,可以看到共享和安全选项出来了 这是点击它,选择”安全“,可以看到里面的权限分配情况。 这些权限是什么意思.来解释一下: 系统用户组大致分几个级别: 1 system,系统权限,最高权限 2 administrators 管理员,最高权限 3 users 用户权限,受限制 4 guests 来宾用户,受限制 5 everyone任何人,差不多等于guests 注意点:对当前系统所作的权限设置在系统重装后不会被辨认,重装后需要重新更改设置才能取回权限。 原因:windows系统的帐号是有独立标签的,即使重装后用与原先一样的用户名,其系统标识也是不一样的。 权限里的细节: 1 完全控制 2 读取和运行 3 写入 4 列出文件夹目录 5 修改 。。。 大致了解这几个就可以。 完全控制:可以做任意更改,包括修改,删除,复制,粘贴,新建。。。 读取和运行:只运行读文件,也即浏览,运行程序 写入:允许新建 修改:允许修改 列目录:允许列出文件夹的所有文件 在个人配置上通常需要三种控制方式: 1 完全控制 2 读取和运行+读取+列出文件夹目录 3 全部不勾选,不给任何权限 注意点:权限设置不仅可以设置文件夹磁盘目录,也可以对某个具体程序文件进行设置 举例:

有时候有一些隐私的东西不希望给别人看到,除了隐藏和加密以为。我们可以用权限设置来做到。 步鄹: 1 建立一个users组或者guests组的用户 2 在管理用户下,对需要设置的文件夹或者程序文件点击右键,属性,安全,在组或用户名称里把除administrators和system以为的全部删除,并赋予administrators和system完全控制权限。确定就可以 这样我们给别人使用的帐号是users或者guests登陆,他们就无法访问设置好的文件夹或者程序了。 当然,你也可以做更细微的设置,比如只给浏览权限,不能删除或者修改。。。

在SQLServer 中如何创建用户,分配权限

s q l s e r v e r2000如何创建用户 use你的库名 go--新增用户 exec sp_addlogin 'test'--添加登录 exec sp_grantdbaccess N'test'--使其成为当前数据库的合法用户 exec sp_addrolemember N'db_owner', N'test'--授予对自己数据库的所有权限 --这样创 建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表 go--删除测试用户 exec sp_revokedbaccess N'test'--移除对数据库的访问权限 exec sp_droplogin N'test'--删除登录 如果在企业管理器中创建的话,就用: 企业管理器--安全性--右键登录--新建登录 常规项--名称中输入用户名--身份验证方式根据你的需要选择(如果是使用windows身份验证,则要先在操作系统的用户中新建用户)--默认设置中,选择你新建的用户要访问的数据库 名服务器角色项这个里面不要选择任何东西 数据库访问项勾选你创建的用户需要访问的数据库名 数据库角色中允许,勾选"public","db_ownew" 确定,这样建好的用户与上面语句建立的用户 一样--------------------------------------------------------------------------- 最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例: --添加只允许访问指定表的用户: exec sp_addlogin '用户名','密码','默认数据库名' --添加到数据库exec sp_grantdbaccess '用户名' --分配整表权限GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO[用户名] --分配权限到具体的列GRANT SELECT , UPDATE ON table1(id,AA) TO[用户名] -------------------------------------------------------------------------------- --------------------- 建角色,用户,权限/*--示例说明示例在数据库pubs中创建一个拥有表jobs的所有权限、拥有表titles的SELECT权限的角色r_test 随后创建了一个登录l_test,然后在数据库pubs 中为登录l_test创建了用户账户u_test 同时将用户账户u_test添加到角色r_test中,使 其通过权限继承获取了与角色r_test一样的权限最后使用DENY语句拒绝了用户账户u_test 对表titles的SELECT权限。经过这样的处理,使用l_test登录SQL Server实例后,它只 具有表jobs的所有权限。 --*/USE pubs --创建角色 r_test EXEC sp_addrole 'r_test' --授予 r_test 对 jobs 表的所有权限GRANT ALL ON jobs TO r_test --授予角色 r_test 对 titles 表的 SELECT 权限GRANT SELECT ON titles TO r_test --添加登录 l_test,设置密码为pwd,默认数据库为pubs EXEC sp_addlogin 'l_test','pwd','pubs' --为登录 l_test 在数据库 pubs 中添加安全账户 u_test EXEC sp_grantdbaccess 'l_test','u_test'--添加 u_test 为角色 r_test 的成员EXEC sp_addrolemember 'r_test','u_test' --拒绝安全账户 u_test 对 titles 表的 SELECT 权限DENY SELECT ON titles TO u_test /*--完成上述步骤后,用 l_test 登录,可以对jobs表进行所有操作,但无法对titles表查询,虽然角色 r_test 有titles表的select权限,但已经在安全账户中明确拒绝了对titles 的select权限,所以l_test无titles表的select权限--*/ --从数据库 pubs 中删除安全账户EXEC sp_revokedbaccess 'u_test'

相关文档
相关文档 最新文档