数据库课件-第九章-数据库安全.ppt

上传人:得****1 文档编号:76183674 上传时间:2023-03-08 格式:PPT 页数:60 大小:1.39MB
返回 下载 相关 举报
数据库课件-第九章-数据库安全.ppt_第1页
第1页 / 共60页
数据库课件-第九章-数据库安全.ppt_第2页
第2页 / 共60页
点击查看更多>>
资源描述

《数据库课件-第九章-数据库安全.ppt》由会员分享,可在线阅读,更多相关《数据库课件-第九章-数据库安全.ppt(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第九章第九章数据库安全数据库安全12安全性概述SQL Server 的安全性34用户管理和角色管理权限管理5架构9.1安全性概述安全性概述问题的提出问题的提出数据库的一大特点是数据可以共享;数据库的一大特点是数据可以共享;数据共享必然带来数据库的安全性问题;数据共享必然带来数据库的安全性问题;数据库系统中的数据共享不能是无条件的共享数据库系统中的数据共享不能是无条件的共享;安安全全性性问问题题不不是是数数据据库库系系统统所所独独有有的的,而而是是所所有有计计算机算机系统都有这个问题系统都有这个问题.9.1安全性概述安全性概述什么是数据库的安全性?什么是数据库的安全性?保保护护数数据据库库以以防

2、防止止不不合合法法的的使使用用所所造造成成的的数数据据泄露、更改或破坏。泄露、更改或破坏。数数据据库库系系统统的的安安全全保保护护措措施施是是否否有有效效是是数数据据库库系系统主要的性能指标之一。统主要的性能指标之一。什么是计算机系统安全性?什么是计算机系统安全性?为计算机系统建立和采取的各种安全保护措施,为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防以保护计算机系统中的硬件、软件及数据,防止因偶然或恶意的原因使系统遭到破坏,数据止因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。遭到更改或泄露等。9.1安全性概述安全性概述计算机安全性问题分类计算机安

3、全性问题分类技术安全:技术安全:指计算机系统中采用具有一定安全性的指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安硬件、软件来实现对计算机系统及其所存数据的安全保护。全保护。管理安全:管理安全:由于管理不善导致的计算机设备和数据由于管理不善导致的计算机设备和数据介质的物理破坏、丢失等软硬件意外故障以及场地介质的物理破坏、丢失等软硬件意外故障以及场地的意外事故等安全问题。的意外事故等安全问题。政策法律类:政策法律类:政府部门建立的有关计算机犯罪、数政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令。据安全保密的法律道德准则和政策法规、法令。(一

4、级一级层层设置)(一级一级层层设置)用户用户DBMSOSDB用户标识用户标识和鉴别和鉴别存取控制存取控制视图、视图、审计审计操作系统操作系统安全保护安全保护密码保护密码保护9.1安全性概述安全性概述计算机系统的安全模型计算机系统的安全模型9.1.1用户标识与鉴别用户标识与鉴别系统提供的最外层的安全保护措施。系统提供的最外层的安全保护措施。具体方法:具体方法:系统提供一定的方式让用户标识自己的名字或系统提供一定的方式让用户标识自己的名字或身份;身份;系统内部记录着所有合法用户的标识;系统内部记录着所有合法用户的标识;每次用户要求进入系统时,由系统核对用户提每次用户要求进入系统时,由系统核对用户提

5、供的身份标识;供的身份标识;通过鉴定后才提供机器使用权;通过鉴定后才提供机器使用权;用户标识和鉴定可以重复多次。用户标识和鉴定可以重复多次。9.1.1用户标识与鉴别用户标识与鉴别用户名用户名/口令口令简单易行,容易被人窃取。简单易行,容易被人窃取。每个用户预先约定好一个计算过程或者函数每个用户预先约定好一个计算过程或者函数:系统提供一个随机数;系统提供一个随机数;用户根据自己预先约定的计算过程或者函数进用户根据自己预先约定的计算过程或者函数进行计算;行计算;系统根据用户计算结果是否正确鉴定用户身份。系统根据用户计算结果是否正确鉴定用户身份。常用方法:常用方法:9.1.2存取控制存取控制存取控制

6、机制组成存取控制机制组成定义存取权限定义存取权限:为用户定义适当的存取权限,并登记入数据为用户定义适当的存取权限,并登记入数据字典(安全规则或授权规则)字典(安全规则或授权规则)合法权限检查合法权限检查:查找数据字典,根据安全规则进行用户合法查找数据字典,根据安全规则进行用户合法权限检查权限检查用户权限定义和合法权限检查机制一起组成用户权限定义和合法权限检查机制一起组成DBMS的安全子系统。的安全子系统。9.1.2存取控制存取控制存取控制方法存取控制方法自主存取控制自主存取控制(DAC:DiscretionaryAccessControl):强制存取控制强制存取控制(MAC:Mandatory

7、 Access Control):同一用户对于不同的数据对象有不同的存取权限,同一用户对于不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限,用户还可不同的用户对同一对象也有不同的权限,用户还可将其拥有的存取权限转授给其他用户。将其拥有的存取权限转授给其他用户。每一个数据对象被标以一定的密级,每一个用户每一个数据对象被标以一定的密级,每一个用户也被授予某一个级别的许可证,对于任意一个对象,也被授予某一个级别的许可证,对于任意一个对象,只有具有合法许可证的用户才可以存取。只有具有合法许可证的用户才可以存取。9.1.3自主存取控制(自主存取控制(DAC)方法)方法定义存取权限:定义

8、存取权限:授权:授权:GRANT收回权限:收回权限:REVORK检查存取权限:检查存取权限:对于获得上机权后又进一步发对于获得上机权后又进一步发出存取数据库操作的用户:出存取数据库操作的用户:DBMS查找数据字典,根据其存取权限对操查找数据字典,根据其存取权限对操作的合法性进行检查;作的合法性进行检查;若用户的操作请求超出了定义的权限,系统若用户的操作请求超出了定义的权限,系统将拒绝执行此操作。将拒绝执行此操作。9.1.4强制存取控制(强制存取控制(MAC)方法)方法强制存取控制强制存取控制(MAC):指系统为保证更高程度指系统为保证更高程度的安全性,按照的安全性,按照TDI/TCSEC标准中

9、安全策略的要标准中安全策略的要求,所采取的强制存取检查手段。求,所采取的强制存取检查手段。MAC不是用户能直接感知或进行控制的。不是用户能直接感知或进行控制的。MAC适用于对数据有严格而固定密级分类的部门:适用于对数据有严格而固定密级分类的部门:军事部门军事部门 政府部门政府部门9.1.4强制存取控制(强制存取控制(MAC)方法)方法主体主体是系统中的活动实体是系统中的活动实体:DBMS所管理的实际用户所管理的实际用户代表用户的各进程代表用户的各进程客体客体是系统中的被动实体,是受主体操纵的是系统中的被动实体,是受主体操纵的:文件、基表、索引文件、基表、索引、视图、视图 在在MAC中,中,DB

10、MS所管理的全部实体被分为主体所管理的全部实体被分为主体和客体两大类和客体两大类:9.1.4强制存取控制(强制存取控制(MAC)方法)方法主体的敏感度标记称为主体的敏感度标记称为许可证级别许可证级别客体的敏感度标记称为客体的敏感度标记称为密级密级MAC机制就是通过对比主体的机制就是通过对比主体的Label和客体的和客体的Label,最终确定主体是否能够存取客体。,最终确定主体是否能够存取客体。敏感度标记敏感度标记(LabelLabel)对于主体和客体,对于主体和客体,DBMSDBMS为它们每个实例(值)为它们每个实例(值)指派一个敏感度标记。指派一个敏感度标记。分成若干级别:分成若干级别:绝密

11、、机密、可信、公开绝密、机密、可信、公开9.1.4强制存取控制(强制存取控制(MAC)方法)方法强制存取控制规则强制存取控制规则当某一用户(或某一主体)以标记当某一用户(或某一主体)以标记label注册入系统时,注册入系统时,系统要求他对任何客体的存取必须遵循下面两条规则:系统要求他对任何客体的存取必须遵循下面两条规则:(1)仅当主体的许可证级别)仅当主体的许可证级别大于或等于大于或等于客体的密级时,该客体的密级时,该主体才能主体才能读取读取相应的客体;相应的客体;(2)仅当主体的许可证级别)仅当主体的许可证级别等于等于客体的密级时,该主体才客体的密级时,该主体才能能写写相应的客体。相应的客体

12、。修正规则修正规则(某些系统规定某些系统规定)主体的许可证级别主体的许可证级别小于等于小于等于客体的密级,主体能客体的密级,主体能写写相应的客体。相应的客体。表示:用户可为写入的数据对象赋予高于自己的许可证级别的密表示:用户可为写入的数据对象赋予高于自己的许可证级别的密级,但一旦数据被写入,该用户自己也不能再读该数据对象了。级,但一旦数据被写入,该用户自己也不能再读该数据对象了。共同点共同点:禁止了拥有高许可证级别的主体更新低密级的:禁止了拥有高许可证级别的主体更新低密级的数据对象,防止敏感数据的泄漏。数据对象,防止敏感数据的泄漏。9.1.4强制存取控制(强制存取控制(MAC)方法)方法强制存

13、取控制的特点强制存取控制的特点MAC是对数据本身进行密级标记;是对数据本身进行密级标记;无论数据如何复制,标记与数据是一个不可分的整体;无论数据如何复制,标记与数据是一个不可分的整体;只有符合密级标记要求的用户才可以操纵数据;只有符合密级标记要求的用户才可以操纵数据;提供了更高级别的安全性。提供了更高级别的安全性。MAC与与DAC小结小结DAC与与MAC共同构成共同构成DBMS的安全机制的安全机制原因:较高安全性级别提供的安全保护要包含较低级原因:较高安全性级别提供的安全保护要包含较低级别的所有保护。别的所有保护。先进行先进行DAC检查,通过检查,通过DAC检查的数据对象再由系统进检查的数据对

14、象再由系统进行行MAC检查,只有通过检查,只有通过MAC检查的数据对象方可存取。检查的数据对象方可存取。9.1.5视图机制视图机制视图机制把要保密的数据对无权存取这些数据的视图机制把要保密的数据对无权存取这些数据的用户隐藏起来。用户隐藏起来。视图机制与授权机制配合使用视图机制与授权机制配合使用:即首先用视图机制即首先用视图机制屏蔽掉一部分保密数据;在视图上再进一步定义屏蔽掉一部分保密数据;在视图上再进一步定义存取权限。存取权限。9.1.5视图机制视图机制例:在配电物资表例:在配电物资表stockstock中如果指定中如果指定U1U1用户只能查看用户只能查看供电局供电局1#1#仓库的物资时,可以

15、先建立供电局仓库的物资时,可以先建立供电局1#1#仓库仓库的配电物资视图,然后在该视图上进一步定义存取的配电物资视图,然后在该视图上进一步定义存取权限。权限。CREATEVIEWView_Stock1ASSELECT*FROMSTOCKWHEREwarehouse=供电局供电局1#仓库仓库;/*先建视图先建视图*/GRANT SELECTON View_Stock1TO U1;9.1.6审计审计什么是审计什么是审计?启用一个专用的审计日志(启用一个专用的审计日志(AuditLog),将),将用户对数据库的所有操作记录在上面;用户对数据库的所有操作记录在上面;审计功能是一种监视措施,它跟踪记录有

16、关数审计功能是一种监视措施,它跟踪记录有关数据的访问活动据的访问活动。DBA可以利用审计日志中的追踪信息,找出非可以利用审计日志中的追踪信息,找出非法存取数据的人、时间和内容。法存取数据的人、时间和内容。注:审计很费时间和空间,注:审计很费时间和空间,DBA可以根据应用对可以根据应用对安全性的要求,灵活地打开或关闭审计功能。安全性的要求,灵活地打开或关闭审计功能。9.1.7数据加密数据加密数据加密数据加密防止数据库中数据在存储和传输中失密的有防止数据库中数据在存储和传输中失密的有效手段。效手段。加密的基本思想加密的基本思想根据一定的算法将原始数据(明文)变换为根据一定的算法将原始数据(明文)变

17、换为不可直接识别的格式(密文),使得不知道不可直接识别的格式(密文),使得不知道解密算法的人无法获知数据的内容。解密算法的人无法获知数据的内容。加密方法加密方法替换方法替换方法:使用密钥将明文中的每一个字符转换为密:使用密钥将明文中的每一个字符转换为密文中的一个字符。文中的一个字符。置换方法置换方法:将明文的字符按不同的顺序重新排列。:将明文的字符按不同的顺序重新排列。混合混合方法方法:美国:美国1977年制定的官方加密标准:数据加年制定的官方加密标准:数据加密标准(密标准(DataEncryptionStandard,简称,简称DES)9.2SQLServer的安全性的安全性设置设置SQLS

18、erver200SQLServer2005 5登登录的身份验证模录的身份验证模式的方法:式的方法:-安全性安全性-右击右击“新建新建”-单击单击“登录登录”,如图:如图:9.2.1SQLServer2005的身份验证模式的身份验证模式1 1、WindowsWindows身份验证模式身份验证模式默认默认(安全安全)用户通过用户通过Microsoft WindowsMicrosoft Windows用户帐户连接时,用户帐户连接时,SQL ServerSQL Server使用使用WindowsWindows操作系统中的信息验证帐户操作系统中的信息验证帐户名和密码。名和密码。2 2、混合验证模式、混合

19、验证模式 混合验证模式下,当客户端连接到服务器时,既混合验证模式下,当客户端连接到服务器时,既可采取可采取WindowsWindows身份验证,也可采取身份验证,也可采取SQL ServerSQL Server身份身份验证。验证。如果必须选择如果必须选择 混合模式混合模式 并要求使用并要求使用SQL SQL ServerServer帐户登录,则必须为所有的帐户登录,则必须为所有的SQL ServerSQL Server帐户设帐户设置强密码。置强密码。9.2.2SQLServer2005的安全机制的安全机制SQL ServerSQL Server的安全性主体主要有三个级别的安全性主体主要有三个级

20、别 :1.1.服务器级别服务器级别 所含的安全对象主要有登录名、固定服务器角色等,所含的安全对象主要有登录名、固定服务器角色等,其中登录名用于登录数据库服务器,而固定服务器角色用其中登录名用于登录数据库服务器,而固定服务器角色用于给登录名赋予相应的服务器权限。于给登录名赋予相应的服务器权限。2.2.数据库级别数据库级别 所含的安全对象主要有用户、角色、应用程序角色、所含的安全对象主要有用户、角色、应用程序角色、证书、对称密钥、非对称密钥、程序集、全文目录、证书、对称密钥、非对称密钥、程序集、全文目录、DDLDDL事件、架构等。事件、架构等。3.3.架构级别架构级别 所含的安全对象主要有表、视图

21、、函数、存储过程、所含的安全对象主要有表、视图、函数、存储过程、类型、聚合函数等。系统默认架构为类型、聚合函数等。系统默认架构为dbodbo。一个数据库使用者,想要登录一个数据库使用者,想要登录SQL ServerSQL Server服务器上的服务器上的数据库,并对数据库中的表执行更新操作,则该使用者必须数据库,并对数据库中的表执行更新操作,则该使用者必须经过下图所示的安全验证:经过下图所示的安全验证:9.3用户管理和角色管理用户管理和角色管理在在SQLServer中,有登录用户和数据库用户两个概念。中,有登录用户和数据库用户两个概念。一个用户需要首先是一个数据库系统的登录用户,然后才可一个用

22、户需要首先是一个数据库系统的登录用户,然后才可以访问某一个具体的数据库。以访问某一个具体的数据库。登登录录用用户户:由由系系统统管理员管理;管理员管理;数数据据库库用用户户:由由数数据据库库管管理理员员管管理。理。1.登录用户的管理登录用户的管理SQLServer有两个常用的默认登录名:有两个常用的默认登录名:lsa:系统管理员,拥有操作系统管理员,拥有操作SQLServer系统的所系统的所有权限,该登录名不能被删除。有权限,该登录名不能被删除。lBUILTINAdministrator:SQLServer为每个为每个Windows系统管理员提供的默认用户账户,在系统管理员提供的默认用户账户,

23、在SQLServer中拥有系统和数据库的所有权限。中拥有系统和数据库的所有权限。9.3.2用户管理用户管理(1)创建新的)创建新的SQLServer登录用户登录用户CREATELOGINlogin_nameWITHPASSWORD=password,DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language|FROMWINDOWSWITHDEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language9.3.2用户管理用户管理l创建创建Windows验证模式登录名验证模式登录名使用使用FROM子句,子句,WIND

24、OWS关键字指定将登关键字指定将登录名映射到录名映射到Windows登录名。登录名。例例:假设本地计算机名为假设本地计算机名为student_1,S1是一个已经是一个已经创建的创建的Windows用户,创建用户,创建Windows验证模式验证模式下的登录名下的登录名S1,默认数据库是,默认数据库是master:CREATELOGINstudent_1S1FROMWINDOWSWITHDEFAULT_DATABASE=master9.3.2用户管理用户管理l创建创建SQLServer验证模式登录名验证模式登录名例例:创建创建SQLServer登录名登录名S2,密码为,密码为123456,默认数据

25、库是默认数据库是sample:CREATELOGINs2WITHpassword=123456,DEFAULT_DATABASE=sample9.3.2用户管理用户管理(2)删除登录名删除登录名语法格式如下:语法格式如下:DROPLOGINlogin_name例:删除例:删除Windows登录名登录名S1:DROPLOGINstudent_1S1删除删除SQLServer登录名登录名S2:DROPLOGINS29.3.2用户管理用户管理2.数据库用户的管理数据库用户的管理(1)创建数据库用户创建数据库用户CREATEUSERuser_nameFOR|FROMLOGINlogin_name|WI

26、THOUTLOGINWITHDEFAULT_SCHEMA=schema_name9.3.2用户管理用户管理例:使用例:使用SQLServer登录名登录名s2(假设已经创建)在(假设已经创建)在Sample数据库中创建数据库用户数据库中创建数据库用户u1,默认架构,默认架构为为dbo:USEsampleGOCREATEUSERu1FROMLOGINs2WITHDEFAULT_SCHEMA=dbo9.3.2用户管理用户管理9.3.2用户管理用户管理(2)删除数据库用户删除数据库用户格式如下:格式如下:DROPUSERuser_name例:删除例:删除sample数据库的用户数据库的用户u1:USE

27、sampleGODROPUSERu11.定义角色定义角色其格式是:其格式是:CREATEROLErole_nameAUTHORIZATIONowner_name例:在例:在sample数据库中创建角色数据库中创建角色student_role,所有,所有者为者为dbo:USEsampleGOCREATEROLEstudent_roleAUTHORIZATIONdbo9.3.3角色管理角色管理 数据库角色是被命名的一组与数据库操作相关的权数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。则可用一组具有相同权限的限,角色是权限的集合。则可用一组具有相同权限的用户创建一个角色,以便简化

28、授权的过程。用户创建一个角色,以便简化授权的过程。2.为用户指定角色为用户指定角色可以将数据库用户指定为数据库角色的成员:可以将数据库用户指定为数据库角色的成员:SP_ADDROLEMEMBER role_name,user_account例:使用例:使用Windows验证模式的登录名验证模式的登录名students1创建创建sample数据库的用户数据库的用户students1,并将该用户添加到角,并将该用户添加到角色色student_role中:中:USEsampleGOCREATEUSERstudents1FROMLOGINstudents1SP_ADDROLEMEMBERstudent

29、_role,students19.3.3角色管理角色管理3.取消用户的角色取消用户的角色如果某个用户不再担当某个角色,可以取消如果某个用户不再担当某个角色,可以取消用户的角色,或者说从角色中删除用户。用户的角色,或者说从角色中删除用户。SP_DROPROLEMEMBERrole_name,user_name例:取消用户例:取消用户s1的的student_role角色:角色:SP_DROPROLEMEMBERstudent_role,students19.3.3角色管理角色管理4.删除角色删除角色如果当前数据库中的某个角色不再需要,则如果当前数据库中的某个角色不再需要,则可以删除该角色。可以删除

30、该角色。DROPROLErole_name例例:DROPROLEstudent_role注:不能删除带有成员的角色;也不能删除固定角色及注:不能删除带有成员的角色;也不能删除固定角色及public角色。角色。9.3.4SQLServer的固定角色的固定角色1.1.固定服务器角色固定服务器角色固定服固定服务务器角色器角色描述描述SYSADMINSYSADMIN系系统统管理管理员员,拥拥有所有操作有所有操作权权限限,可可执执行任何活行任何活动动.SERVERADMINSERVERADMIN服服务务器管理器管理员员,可以可以设设置服置服务务器范器范围围的配置的配置选项选项,关,关闭闭服服务务器。器。

31、SETUPADMINSETUPADMIN安装程序管理安装程序管理员员,可以管理可以管理链链接服接服务务器和启器和启动过动过程。程。SECURITYADMINSECURITYADMIN安全管理安全管理员员,可以管理登可以管理登录录和和 CREATE DATABASE CREATE DATABASE 权权限,限,还还可以可以读读取取错误错误日志和更改密日志和更改密码码。PROCESSADMINPROCESSADMIN进进程管理程管理员员,可以管理在可以管理在 SQL Server SQL Server 中运行的中运行的进进程。程。DBCREATORDBCREATOR数据数据库创库创建者建者,可以可

32、以创创建、更改和除去数据建、更改和除去数据库库。DISKADMINDISKADMIN磁磁盘盘管理管理员员,可以管理磁可以管理磁盘盘文件。文件。BULKADMINBULKADMIN块块数据操作管理数据操作管理员员,可以可以执执行行 BULK INSERT BULK INSERT 语语句。句。l可以把登录名添加到固定服务器角色中,使得登录名作为可以把登录名添加到固定服务器角色中,使得登录名作为固定服务器角色的成员继承固定服务器角色的权限。固定服务器角色的成员继承固定服务器角色的权限。语法如下:语法如下:SP_ADDSRVROLEMEMBERlogin,role例:将登录例:将登录JOHN指定为指定

33、为SYSADMIN固定服务器角色的成员,固定服务器角色的成员,则以则以JOHN登录名登录系统的用户将自动拥有系统管理员权登录名登录系统的用户将自动拥有系统管理员权限:限:SP_ADDSRVROLEMEMBERJOHN,SYSADMINl将固定服务器角色的某个成员删除将固定服务器角色的某个成员删除。语法如下:语法如下:SP_DROPSRVROLEMEMBERlogin,role例:从例:从sysadmin固定服务器角色中删除登录固定服务器角色中删除登录JOHN。SP_DROPSRVROLEMEMBERJOHN,SYSADMIN9.3.4SQLServer的固定角色的固定角色2.固定数据库角色固定

34、数据库角色固定数据固定数据库库角色角色描述描述DB_OWNER数据数据库库所有者,在数据所有者,在数据库库中有全部中有全部权权限。限。DB_ACCESSADMIN访问权访问权限管理限管理员员,可以添加或,可以添加或删删除用除用户户 ID。DB_SECURITYADMIN安全管理安全管理员员,可以管理全部,可以管理全部权权限、限、对对象所有象所有权权、角色和、角色和角色成角色成员资员资格。格。DB_DDLADMIN数据数据库对库对象管理象管理员员,可以,可以发发出出 ALL DDL,但不能,但不能发发出出 GRANT、REVOKE 或或 DENY 语语句。句。DB_BACKUPOPERATOR数

35、据数据库备库备份,可以份,可以发发出出 DBCC、CHECKPOINT 和和 BACKUP 语语句。句。DB_DATAREADER数据数据检检索操作索操作员员,可以,可以选择选择数据数据库库内任何用内任何用户户表中的所表中的所有数据。有数据。DB_WRITER数据数据维护维护操作操作员员,可以更改数据,可以更改数据库库内任何用内任何用户户表中的所表中的所有数据。有数据。DB_DENYDATAREADER拒拒绝执绝执行数据行数据检检索操作索操作员员,不能,不能选择选择数据数据库库内任何用内任何用户户表中的任何数据。表中的任何数据。DB_DENYDATAWRITER拒拒绝执绝执行数据行数据维护维护

36、操作操作员员,不能更改数据,不能更改数据库库内任何用内任何用户户表中的任何数据。表中的任何数据。3.PUBLIC角色角色SQLServer有一个特殊的角色即有一个特殊的角色即PUBLIC角角色。色。PUBLIC角色有两大特点:角色有两大特点:初始状态时没有权限;初始状态时没有权限;所有的数据库用户都是它的成员。所有的数据库用户都是它的成员。9.3.4SQLServer的固定角色的固定角色注:当为注:当为public角色授权时,实际上是为所有的数据库用户角色授权时,实际上是为所有的数据库用户授权。授权。9.4权限管理权限管理 对 象常 用 权 限数据库数据库BACKUP DATABASE、BAC

37、KUP LOG、CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TABLE、CREATE VIEW、ALTERTABLE表表SELECT、DELETE、INSERT、UPDATE、REFERENCES视图视图SELECT、DELETE、INSERT、UPDATE、REFERENCES常用数据库对象的权限常用数据库对象的权限:9.4.1授予权限授予权限1.授予语句权限授予语句权限语句授权的命令格式是:语句授权的命令格式是:GRANTALL|statement,.nTOaccoun

38、t,.n例:系统管理员给用户例:系统管理员给用户Mary和和John授予多个语授予多个语句权限:句权限:GRANTCREATEDATABASE,CREATETABLETOMary,John2.授予对象权限授予对象权限处理数据或执行存储过程中需要相应对象的操处理数据或执行存储过程中需要相应对象的操作或执行权限,这些权限可以划分为:作或执行权限,这些权限可以划分为:SELECTSELECT、INSERTINSERT、UPDATEUPDATE和和DELETEDELETE语句权限,可以语句权限,可以应用到整个表或视图;应用到整个表或视图;SELECTSELECT和和UPDATEUPDATE语句权限,可

39、以有选择性地应用到语句权限,可以有选择性地应用到表或视图中的某些列上;表或视图中的某些列上;INSERTINSERT和和DELETEDELETE语句权限,会影响整行,因此只可语句权限,会影响整行,因此只可以应用到表或视图中,而不能应用到单个列上。以应用到表或视图中,而不能应用到单个列上。EXECUTEEXECUTE语句权限,执行存储过程和函数的权限。语句权限,执行存储过程和函数的权限。9.4.1授予权限授予权限数据库对象授权的命令格式如下:数据库对象授权的命令格式如下:GRANTALLPRIVILEGES|permission,.n(column,.n)ONtable|view|ONtable

40、|view(column,.n)|ONstored_procedure|extended_procedure|ONuser_defined_functionTOsecurity_account,.nWITHGRANTOPTIONASgroup|role9.4.1授予权限授予权限例:在电力工程抢修数据库中:例:在电力工程抢修数据库中:(1)将)将out_stock表的表的SELECT权限授予权限授予public角色。角色。GRANTSELECTONout_stockTOpublic(2)将)将out_stock表的表的INSERT,UPDATE,DELETE权权限授予用户限授予用户Mary、Jo

41、hn。GRANTINSERT,UPDATE,DELETEONout_stockTOMary,John(3)将对表)将对表out_stock的的get_date列的修改权限授予用列的修改权限授予用户户Tom。GRANTUPDATE(get_date)ONout_stockToTom9.4.1授予权限授予权限9.4.1授予权限授予权限例:把对表例:把对表stock的的insert权限授予用户权限授予用户U1,并允许,并允许将此权限授予其他用户。将此权限授予其他用户。Grant insert On stock To U1With grant option;U1可将此权限授予可将此权限授予U2:Gra

42、nt insert On stock To U2With grant option;U2可将此权限授予可将此权限授予U3:Grant insert On stock To U3;-U1-U2-U3例例:用户用户Jean拥有表拥有表Plan_Data。Jean将表将表Plan_Data的的SELECT权限授予权限授予Accounting角色(指定角色(指定WITHGRANTOPTION子句)。用户子句)。用户Jill是是Accounting的成员,他要将的成员,他要将表表Plan_Data上的上的SELECT权限授予用户权限授予用户Jack,Jack不不是是Accounting的成员。的成员。因

43、为对表因为对表Plan_Data用用GRANT语句授予其他用户语句授予其他用户SELECT权限的权限是授予权限的权限是授予Accounting角色而不是显式地角色而不是显式地授予授予Jill,不能因为已授予,不能因为已授予Accounting角色中成员该权限,角色中成员该权限,而使而使Jill能够授予表的权限。能够授予表的权限。Jill必须用必须用AS子句来获得子句来获得Accounting角色的授予权限。角色的授予权限。/*UserJean*/GRANTSELECTONPlan_DataTOAccountingWITHGRANTOPTION/*UserJill*/GRANTSELECTONP

44、lan_DataTOJackASAccounting9.4.2收回权限收回权限收回语句权限的一般格式为:收回语句权限的一般格式为:REVOKEALL|statement,.nFROMaccount,.n收回对象权限的命令格式是:收回对象权限的命令格式是:REVOKEGRANTOPTIONFORALLPRIVILEGES|permission,.n(column,.n)ONtable|view|ONtable|view(column,.n)|ONstored_procedure|extended_procedure|ONuser_defined_functionTO|FROMaccount,.n

45、CASCADEASgroup|role9.4.2收回权限收回权限例:把用户例:把用户U1对表对表stock的的insert权限收回。权限收回。Revoke insert On stock From U1;权限的级联回收:权限的级联回收:系统将自动收回直接或间接从系统将自动收回直接或间接从U1处获得的对处获得的对Stock表的表的INSERT权限权限:-U1-U2-U3注:若注:若U2和和U3从其他用户处获得对从其他用户处获得对Stock表的表的insert权限,则不会回收。权限,则不会回收。例:例:废除已授予用户废除已授予用户Joe的的CREATETABLE权限:权限:REVOKECREATE

46、TABLEFROMJoe例:废除授予多个用户的多个语句权限:例:废除授予多个用户的多个语句权限:REVOKECREATETABLE,CREATEDEFAULTFROMMary,John例:用户例:用户Mary是是Budget角色的成员,已给该角色授予了角色的成员,已给该角色授予了对对Budget_Data表的表的SELECT权限。已对权限。已对Mary使用使用DENY语句以防止语句以防止Mary通过授予通过授予Budget角色的权限访角色的权限访问问Budget_Data表。表。删除对删除对Mary拒绝的权限,并通过适用于拒绝的权限,并通过适用于Budget角色的角色的SELECT权限,允许权

47、限,允许Mary对该表使用对该表使用SELECT语句。语句。REVOKESELECTONBudget_DataTOMary9.4.2收回权限收回权限9.4.3禁止权限禁止权限禁止语句权限的命令格式如下:禁止语句权限的命令格式如下:DENYALL|statement,.nTOaccount,.n禁止对象权限的命令格式如下:禁止对象权限的命令格式如下:DENYALLPRIVILEGES|permission,.n(column,.n)ONtable|view|ONtable|view(column,.n)|ONstored_procedure|extended_procedure|ONuser_d

48、efined_functionTOaccount,.nCASCADE例:禁止用户例:禁止用户Mary和和John对对out_stock表的表的UPDATE、DELETE操作:操作:DENYUPDATE,DELETEONout_stockTOMary,John对所有对所有Accouting角色成员拒绝角色成员拒绝CREATETABLE权限:权限:DENYCREATETABLETOAccounting如果使用如果使用DENY语句禁止用户获得某个权限,那么以语句禁止用户获得某个权限,那么以后将该用户添加到已得到该权限的组或角色时,该用户不后将该用户添加到已得到该权限的组或角色时,该用户不能访问这个权

49、限。如果要解除由于能访问这个权限。如果要解除由于DENY语句产生的禁止语句产生的禁止效果,必须使用效果,必须使用GRANT命令为禁止的用户或角色显式授命令为禁止的用户或角色显式授予相应的权限。予相应的权限。9.4.3禁止权限禁止权限9.5架构架构数据库架构(数据库架构(SCHEMA)是一个独立于数据)是一个独立于数据库用户的非重复命名空间,数据库中的对象都属库用户的非重复命名空间,数据库中的对象都属于某一个架构,可以将架构视为对象的容器。一于某一个架构,可以将架构视为对象的容器。一个架构只能有一个所有者,所有者可以是用户、个架构只能有一个所有者,所有者可以是用户、数据库角色等。架构的所有者可以

50、访问架构中的数据库角色等。架构的所有者可以访问架构中的对象,并且还可以授予其他用户访问该架构的权对象,并且还可以授予其他用户访问该架构的权限。一个架构有且只有一个所有者限。一个架构有且只有一个所有者Owner,但一,但一个用户可以拥有多个架构。个用户可以拥有多个架构。1.创建架构创建架构创建架构的语法格式如下:创建架构的语法格式如下:CREATESCHEMAschema_nameAUTHORIZATIONowner_name例如,下列创建架构例如,下列创建架构test_schema,其所有者为,其所有者为dbo:CREATESCHEMAtest_schemaAUTHORIZATIONdbo注意

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁