第09章 角色和权限

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

LOGO第9章角色和权限第9章角色和权限Contents权限1角色29.1.1权限概述•权限是SQLServer2000安全性管理的重要内容,它表示一个用户帐号所有可以执行的操作的范围。•权限简单来讲就是“用户能不能做某个操作”。比如,一个用户如果有访问NorthWind数据库的权限,他才可以访问NorthWind数据库,若他不具有访问NorthWind数据库的权限,则在访问时会报错。又如,一个用户对数据库拥有除添加以外的所有权限,则他可以对数据库查询,修改,删除操作都能够正常进行,而进进添加操作将会报错。•权限按作用的对象来分,可分为对象存取权限和语句权限和暗示性权限两种。•对象存取权限是指处理数据和执行存储过程所需要的权限。它在以下几种情况中需要:•(1).SELECT在影响表,视图、单个列或自定义的函数时需要。•(2).INSERT在影响表、视图时需要。•(3).UPDATE在影响表、视图时或单个列时需要。•(4).DELETE在影响表、视图时需要。•(5).EXECUTE在执行存储过程时需要。9.1.1权限概述•语句权限在创建数据库或数据库中的项时所要求的权限。语句权限在下面几种情况中需要:•(1).BACKUPDATABASE在备份数据库时需要•(2).BACKUPLOG在备份事务日志时需要。•(3).CREATEDATABASE在创建数据库时需要。•(4).CREATEDEFAULT在创建默认值时需要。•(5).CREATEFUNCTION在创建函数时需要。•(6).CREATEPROCEDURE在创建存储过程时需要。•(7).CREATERULE在创建规则时需要。•(8).CREATEVIEW在创建视图时需要。•(9).CREATETABLE在创建数据表时需要。•暗示性权限是指由系统内定角色所给予的权限,比如,sysadmin固定服务器角色成员暗示了在SQLServer安装中进行操作或查看的权限。9.1.2对象权限的设置•2.使用T-SQL语句进行设置•(1).授予对象权限:•其中•ALL指可以包含所有的权限。•permission指可授予的权限它可以是SELECT、INSERT、DELETE或UPDATE。•column指要授予权限的列。•ONtable指要授予权限的表。•ONview指要授予权限的视图。•ON{stored_procedure|extended_procedure}指要授予权限的的存储过程。•TOsecurity_account指授予给某一个安全帐户。•WITHGRANTOPTION可以指定授予的选项。•AS{group|role}指将某个角色的权限授予给用户9.1.2对象权限的设置•比如,用下面语句来将UPDATE,DELETE权限授予用户HR•应该注意的是,将权限授予某个角色并不能保得该角色的这个权限可以立即应用于这个角色的所有成员。•比如,若成员Aspol属于角色Manage中的一个成员,下面的语句9.1.2对象权限的设置•并不能保证Aspol能得到对于Employees表的UPDATE权限。只有用下面的语句显示地授予后才能拥有UPDATE权限:•(2).禁止对象权限:9.1.2对象权限的设置•参数说明同GRANT,用于禁止某一对象的某一权限。•比如要禁止用户Aspol在表Employees上的的所有权限可以用:•(3).取消对象权限9.1.2对象权限的设置•参数说明同GRANT,用于取消掉对象的授予或禁止权限。•比如要取消掉用户Aspol的在表Employees上的SELECT权限可以用:9.1.3语句权限的设置•1.使用企业管理器进行设置•用企业管理器可以很方便地设置语句权限:•步骤1:在如图9-5所示的企业管理器窗口中,在Northwind用户上单击鼠标右键,在弹出的快捷菜单中选择“属性”命令。•步骤2:在如图9-6所示的Northwind属性窗口中,单击“权限”选项卡。可以看到这里列出了NorthWind数据库中有的用户和角色,其中创建表,创建视图等列可以设置是否拥有这项权限。•单击任一一个数据库即可设置某一角色或用户的语句属性。图9-5在企业管理器中设置语句权限图9-6语句权限的设置9.2.1角色概述•用户在SQLServer2000系统内进行任何操作,必须要有相应的权限。所以为不同的用户分配合适的权限是数据库管理员例行的公事。然而,如果在一个稍大型的企业中,若有五千名名职员,要为他们一一分配权限的工作量就显得太大,并且,若还有人事调动,则有过人事调动的职员还必须为他们修改相应的权限,例如一个公司的员工升为部门经理后,应当给予更大的权限,如对更多的数据表有SELECT权限,或可以UPDATE手下员工的职责等。这些如果要每个权限都操作一次,其工作量可想而知。•SQLServer2000系统引入了角色的概念,将对用户权限的一一操作集中转换成为了一个变换用户角色的操作。•角色包含了一组WindowsNT4.0或Windows2000用户帐户和组,它们对于SQLServer2000中的数据据操作具有相同的权限。这类似于windows或Unix中的用户组。相同角色的成员有相同的权限。9.2.1角色概述•在SQLServer2000安装好以后,系统默认会创建几个固定的服务器角色,这些服务器角色有不同的权限,用来给数据库管理员授权。默认的服务器角色为:•bulkadmin可执行大量插入的BULKINSERT操作•sysadmin具有任何操作权限,相当于window中的系统管理员•serveradmin具有配置服务器,改变服务器各选项的权限•setupadmin可以管理链接服务器•processadmin可以管理SQLServer中运行的程序•diskadmin可以管理磁盘文件•securityadmin管理登录有关的如用户帐户•另外,对于数据库操作也定义了许多的固定数据库角色,如下表所示:表9-1固定服务器角色9.2.2用T-SQL语句创建角色•用T-SQL语句创建角色的语法如下:•其中•rolename为新角色的名称•ownername指新角色的所有者,它必须为数据库中的某一合法用户或角色。•比如,要在数据库Northwind中创建一个名为Fisher的角色,可以用下面的语句:•其中,dbo为默认的数据库所有者。9.2.3角色权限的更改•用T-SQL对角色权限的更改用T-SQL对角色权限的语法同用户权限。也是用GRANT、DENY和REVOKE来更改。•比如,要使角色对表OrderEmployees,Shippers具有插入权限,可以用下面语句:9.2.3角色权限的更改•又如,要对testAccount的Orders表进行取消INSERT授权操作和Shippers表进行取消SELECT授权操作,可以用9.2.4角色成员的更改•在企业管理器中角色成员的更改可参考在企业管理器中创建角色操作。这里主要介绍用T-SQL更改成员的操作。•用T-SQL语句添加角色成员的语法如下:•其中•rolename表示角色名•security_account表示为角色添加的用户名。•比如在Northwind中要为角色testAccount添加用户HR可以用下列语句:9.2.4角色成员的更改•用T-SQL语句删除角色成员的语法如下:•参数同sp_addrolemember•例如要在数据库的角色sale_manager中删去用户hWang可以用:LOGO

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功