好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

SQL-Server-2012数据库开发教程第11章.ppt

99页
  • 卖家[上传人]:桔****
  • 文档编号:590765301
  • 上传时间:2024-09-15
  • 文档格式:PPT
  • 文档大小:931.50KB
  • / 99 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • SQL Server 2012SQL Server 2012数据库开发教程数据库开发教程数据库开发教程数据库开发教程(第(第(第(第33版)版)版)版) 授课教师:授课教师:职务:职务: 第第11章章  SQL Server安全管理安全管理  课程描述课程描述课程描述课程描述对于任何数据库系统而言,保证对于任何数据库系统而言,保证对于任何数据库系统而言,保证对于任何数据库系统而言,保证数据的安全性都是最重要的问题数据的安全性都是最重要的问题数据的安全性都是最重要的问题数据的安全性都是最重要的问题之一安全性包括什么样的用户之一安全性包括什么样的用户之一安全性包括什么样的用户之一安全性包括什么样的用户能够登录到能够登录到能够登录到能够登录到SQL ServerSQL ServerSQL ServerSQL Server,以及用,以及用,以及用,以及用户登录后所能进行的操作维护户登录后所能进行的操作维护户登录后所能进行的操作维护户登录后所能进行的操作维护数据库的安全是数据库管理员的数据库的安全是数据库管理员的数据库的安全是数据库管理员的数据库的安全是数据库管理员的重要职责在很多小规模的数据重要职责。

      在很多小规模的数据重要职责在很多小规模的数据重要职责在很多小规模的数据库环境中,管理员都使用库环境中,管理员都使用库环境中,管理员都使用库环境中,管理员都使用sasasasa用户用户用户用户登录管理数据库,这并不是好的登录管理数据库,这并不是好的登录管理数据库,这并不是好的登录管理数据库,这并不是好的习惯特别是在管理员比较多的习惯特别是在管理员比较多的习惯特别是在管理员比较多的习惯特别是在管理员比较多的大型数据库环境中,必须明确每大型数据库环境中,必须明确每大型数据库环境中,必须明确每大型数据库环境中,必须明确每个管理员的职责,为每个管理员个管理员的职责,为每个管理员个管理员的职责,为每个管理员个管理员的职责,为每个管理员分配不同的用户,并定义其权限分配不同的用户,并定义其权限分配不同的用户,并定义其权限分配不同的用户,并定义其权限这样一方面可以使大家各司其职,这样一方面可以使大家各司其职,这样一方面可以使大家各司其职,这样一方面可以使大家各司其职,不会出现一件事件所有人都管理,不会出现一件事件所有人都管理,不会出现一件事件所有人都管理,不会出现一件事件所有人都管理,可又谁都不管的情况;另一方面,可又谁都不管的情况;另一方面,可又谁都不管的情况;另一方面,可又谁都不管的情况;另一方面,当出现问题时也可以明确是谁的当出现问题时也可以明确是谁的当出现问题时也可以明确是谁的当出现问题时也可以明确是谁的责任。

      责任 本章知识点本章知识点11.1 11.1 安全管理概述安全管理概述 11.2 11.2 登录登录 11.3 11.3 数据库用户数据库用户 11.4 11.4 角色角色 11.5 11.5 权限管理权限管理 11.1  安全管理概述安全管理概述 pSQL ServerSQL Server的安全管理模型中包括的安全管理模型中包括SQL ServerSQL Server登录、数据库用登录、数据库用户、权限和角色户、权限和角色4 4个主要方面,具体如下个主要方面,具体如下p((1 1))SQL ServerSQL Server登录登录:要想连接到:要想连接到SQL ServerSQL Server服务器实例,必服务器实例,必须拥有相应的登录账户和密码须拥有相应的登录账户和密码SQL ServerSQL Server的身份认证系统验的身份认证系统验证用户是否拥有有效的登录账户和密码,从而决定是否允许该证用户是否拥有有效的登录账户和密码,从而决定是否允许该用户连接到指定的用户连接到指定的SQL ServerSQL Server服务器实例服务器实例p((2 2))数据库用户数据库用户:通过身份认证后,用户可以连接到:通过身份认证后,用户可以连接到SQL SQL ServerServer服务器实例。

      但是,这并不意味着该用户可以访问到指服务器实例但是,这并不意味着该用户可以访问到指定服务器上的所有数据库在每个定服务器上的所有数据库在每个SQL ServerSQL Server数据库中,都存数据库中,都存在一组在一组SQL ServerSQL Server用户账户登录账户要访问指定数据库,就用户账户登录账户要访问指定数据库,就要将自身映射到数据库的一个用户账户上,从而获得访问数据要将自身映射到数据库的一个用户账户上,从而获得访问数据库的权限一个登录账户可以对应多个用户账户库的权限一个登录账户可以对应多个用户账户p((3 3))权限权限:权限规定了用户在指定数据库中所能进行的操作权限规定了用户在指定数据库中所能进行的操作p((4 4))角色角色:类似于:类似于WindowsWindows的用户组,角色可以对用户进行分的用户组,角色可以对用户进行分组管理可以对角色赋予数据库访问权限,此权限将应用于角组管理可以对角色赋予数据库访问权限,此权限将应用于角色中的每一个用户色中的每一个用户 11.2  登录登录 p登录指用户连接到指定登录指用户连接到指定SQL ServerSQL Server数数据库实例的过程。

      在此期间,系统要据库实例的过程在此期间,系统要对该用户进行身份验证对该用户进行身份验证p只有拥有正确的登录账户和密码,才只有拥有正确的登录账户和密码,才能连接到指定的数据库实例能连接到指定的数据库实例11.2.1 11.2.1 身份验证模式身份验证模式11.2.2 11.2.2 创建登录名创建登录名11.2.3 11.2.3 修改和删除登录名修改和删除登录名 11.2.1  身份验证模式身份验证模式p用户要访问用户要访问SQL SQL ServerServer中的数中的数据,首先需要据,首先需要登录到登录到SQL SQL ServerServer数据库数据库实例登录时实例登录时要从系统中获要从系统中获得授权,并通得授权,并通过系统的身份过系统的身份验证pSQL ServerSQL Server的的身份验证模式身份验证模式如图如图11-111-1所示 1..Windows 身份验证模式身份验证模式 p当用户通过当用户通过WindowsWindows用户账户进行连接时,用户账户进行连接时,SQL SQL ServerServer通过回叫通过回叫WindowsWindows操作系统以获得信息,操作系统以获得信息,重新验证账户名和密码。

      重新验证账户名和密码pSQL ServerSQL Server通过使用网络用户的安全特性控制通过使用网络用户的安全特性控制登录访问,以实现与登录访问,以实现与WindowsWindows的登录安全集成的登录安全集成用户的网络安全特性在网络登录时建立,并通用户的网络安全特性在网络登录时建立,并通过过WindowsWindows域控制器进行验证当网络用户尝试域控制器进行验证当网络用户尝试连接时,连接时,SQL ServerSQL Server使用基于使用基于WindowsWindows的功能确的功能确定经过验证的网络用户名定经过验证的网络用户名 2..SQL Server身份验证身份验证 p在在SQL Server SQL Server Management Management StudioStudio中,用鼠中,用鼠标右击数据库服标右击数据库服务器实例名,在务器实例名,在弹出的快捷菜单弹出的快捷菜单中选择中选择“属性属性”命令,打开命令,打开“属属性性”对话框,选对话框,选择择“安全性安全性”页,页,即可设置即可设置SQL SQL ServerServer的身份认的身份认证模式,如图证模式,如图11-11-2 2所示。

      所示 11.2.2  创建登录名创建登录名 p1 1.在.在SQL Server Management StudioSQL Server Management Studio中创建登录名中创建登录名p在在SQL Server Management StudioSQL Server Management Studio中,选中中,选中“安全性安全性”/ /“登录名登录名”项,可以查看项,可以查看SQL ServerSQL Server数据库中当前数据库中当前的登录名信息,如图的登录名信息,如图11-311-3所示 “新建登录新建登录”对话框对话框 p右键单击右键单击“登登录名录名”,在弹,在弹出菜单中选择出菜单中选择“新建登录名新建登录名”命令,打开命令,打开“新建登录新建登录”对话框,如图对话框,如图11-411-4所示 2.使用.使用SQL语句创建登录名语句创建登录名 p可以使用可以使用CREATE LOGINCREATE LOGIN语句创建登录名,语法如下:语句创建登录名,语法如下:CREATE LOGIN login_name { WITH | CREATE LOGIN login_name { WITH | FROM }FROM }p其中其中login_namelogin_name是新建的登录名,是新建的登录名,为登为登录选项设置,录选项设置,为新建登录名的来源(例如为新建登录名的来源(例如WindowsWindows登录、证书或非对称密钥等)。

      登录、证书或非对称密钥等)p的语法如下:的语法如下: ::= ::= PASSWORD = 'password' [ HASHED ] [ MUST_CHANGE PASSWORD = 'password' [ HASHED ] [ MUST_CHANGE ] ] [ , [ ,... ] ] [ , [ ,... ] ] option_list2 poption_list2option_list2指定更多选项设置,语法如下:指定更多选项设置,语法如下: ::= ::= SID = sid SID = sid | DEFAULT_DATABASE = database | DEFAULT_DATABASE = database | DEFAULT_LANGUAGE = language | DEFAULT_LANGUAGE = language | CHECK_EXPIRATION = { ON | OFF} | CHECK_EXPIRATION = { ON | OFF} | CHECK_POLICY = { ON | OFF} | CHECK_POLICY = { ON | OFF} [ CREDENTIAL = credential_name ] [ CREDENTIAL = credential_name ] 【【例例11-1】】 p创建登录名创建登录名leelee,采用,采用SQL ServerSQL Server验证方验证方式,密码为式,密码为Abc12345Abc12345,代码如下:,代码如下:CREATE LOGIN lee WITH PASSWORD = CREATE LOGIN lee WITH PASSWORD = 'Abc12345' MUST_CHANGE, 'Abc12345' MUST_CHANGE, CHECK_EXPIRATION=ONCHECK_EXPIRATION=ONGOGO CREATE LOGIN语句中语句中子句的语法子句的语法结构结构  ::= ::= WINDOWS [ WITH WINDOWS [ WITH [ ,... ] ][ ,... ] ] | CERTIFICATE certname | CERTIFICATE certname | ASYMMETRIC KEY asym_key_name | ASYMMETRIC KEY asym_key_name  p指定指定WindowsWindows登录名的登录名的更多选项,语法如下:更多选项,语法如下: ::= ::= DEFAULT_DATABASE = database DEFAULT_DATABASE = database | DEFAULT_LANGUAGE = language | DEFAULT_LANGUAGE = language 【【例例11-2】】 p从从WidnowsWidnows域中创建登录名的代码如下:域中创建登录名的代码如下:CREATE LOGIN [DBServer\dbuser] FROM WINDOWS;CREATE LOGIN [DBServer\dbuser] FROM WINDOWS;GOGOp执行时需将执行时需将DBServer\dbuserDBServer\dbuser替换为已经替换为已经存在的存在的WindowsWindows帐户。

      帐户 3.使用系统存储过程创建登录账户.使用系统存储过程创建登录账户 p((1 1)使用系统存储过程创建)使用系统存储过程创建WindowsWindows身份身份验证模式登录账户验证模式登录账户p使用使用sp_grantloginsp_grantlogin存储过程可以创建新存储过程可以创建新的的WindowsWindows身份验证模式登录账户,基本身份验证模式登录账户,基本语法如下:语法如下:sp_grantlogin 'sp_grantlogin '登录名称登录名称' ' 【【例例11-3】】 p使用使用sp_grantloginsp_grantlogin存储过程将用户存储过程将用户LEE\publicLEE\public映射到映射到SQL ServerSQL Server登录账户登录账户p具体语句如下:具体语句如下:sp_grantlogin 'LEE\public'sp_grantlogin 'LEE\public'p执行结果为:执行结果为:已向已向 'LEE\public' 'LEE\public' 授予登录访问权授予登录访问权 ((2)使用系统存储过程创建)使用系统存储过程创建SQL Server身份身份验证模式的登录账户验证模式的登录账户 p使用使用sp_addloginsp_addlogin存储过程可以创建新的登录账存储过程可以创建新的登录账户,基本语法如下:户,基本语法如下:sp_addlogin 'sp_addlogin '登录名称登录名称'[, ''[, '登录密码登录密码'][, ''][, '默默认数据库认数据库'][, ''][, '默认语言默认语言']']pSQL Server SQL Server 登录名称和密码可以包含登录名称和密码可以包含1 1~~128128个个字符,包括任何字母、符号和数字。

      但是,登字符,包括任何字母、符号和数字但是,登录名不能出现如下情况录名不能出现如下情况p  含有反斜线(含有反斜线(\ \)p  是保留的登录名称,例如是保留的登录名称,例如sasa或或publicpublic,或者,或者已经存在已经存在p  为为NULLNULL,或为空字符串,或为空字符串('')('') 【【例例11-4】】 p使用使用sp_addloginsp_addlogin存储过程创建存储过程创建SQL SQL ServerServer登录账户登录账户leelee,密码为,密码为111111111111,默,默认数据库为认数据库为HrSystemHrSystemp具体语句如下:具体语句如下:sp_addlogin 'lee', '111111', sp_addlogin 'lee', '111111', 'HrSystem''HrSystem'p执行结果为:执行结果为:已创建新登录已创建新登录 11.2.3  修改和删除登录名修改和删除登录名 p1 1.使用.使用Management StudioManagement Studio修改账户修改账户p2 2.使用.使用Management StudioManagement Studio删除账户删除账户p3 3.使用系统存储过程修改和删除账户.使用系统存储过程修改和删除账户 1.使用.使用Management Studio修改账户修改账户 p((1 1)修改)修改WindowsWindows身份验证模式账户身份验证模式账户p((2 2)修改)修改SQL ServerSQL Server身份验证模式账户身份验证模式账户 ((1)修改)修改Windows身份验证模式账户身份验证模式账户 p如果是如果是WindowsWindows身份验证模式身份验证模式账户,则可以账户,则可以修改该账户的修改该账户的安全性访问方安全性访问方式、默认数据式、默认数据库和默认语言库和默认语言等,如图等,如图11-511-5所示。

      所示 ((2)修改)修改SQL Server身份验证模式账户身份验证模式账户  ((如果是如果是SQL SQL ServerServer身份身份验证模式账验证模式账户,则可以户,则可以修改该账户修改该账户的密码、默的密码、默认数据库和认数据库和默认语言等,默认语言等,如图如图11-611-6所所示 2.使用.使用Management Studio删除账户删除账户 p在在Management StudioManagement Studio中,用鼠标右键中,用鼠标右键单击单击SQL ServerSQL Server账户,在弹出的快捷菜账户,在弹出的快捷菜单中选择单中选择“删除删除”命令,在弹出的确认命令,在弹出的确认对话框中单击对话框中单击“是是”按钮,可以删除该按钮,可以删除该账户 3.使用系统存储过程修改和删除账户.使用系统存储过程修改和删除账户 ((1 1))sp_denyloginsp_denylogin存储过程存储过程sp_denyloginsp_denylogin存储过程用于阻止存储过程用于阻止WindowsWindows用户或用户组连用户或用户组连接到接到SQL ServerSQL Server实例,它的基本语法如下:实例,它的基本语法如下:sp_denylogin 'sp_denylogin '用户或用户组名用户或用户组名' 'sp_denyloginsp_denylogin只能和只能和WindowsWindows账户一起使用,账户一起使用,“用户或用用户或用户组名户组名”格式为格式为“域名域名\ \用户名用户名”。

      sp_denyloginsp_denylogin无法用无法用于通过于通过sp_addloginsp_addlogin添加的添加的SQL ServerSQL Server登录sp_denyloginsp_denylogin和和sp_grantloginsp_grantlogin是对应的两个存储过程,是对应的两个存储过程,它们可以互相反转对方的效果,允许和拒绝用户访问它们可以互相反转对方的效果,允许和拒绝用户访问SQL SQL ServerServer 【【例例11-5】】 p使用使用sp_denyloginsp_denylogin存储过程拒绝用户存储过程拒绝用户LEE\publicLEE\public访问访问SQL ServerSQL Server实例p具体语句如下:具体语句如下:sp_denylogin 'LEE\public'sp_denylogin 'LEE\public'执行结果为:执行结果为:已拒绝对已拒绝对 'LEE\public' 'LEE\public' 的登录访问权的登录访问权 ((2))sp_revokelogin存储过程存储过程 psp_revokeloginsp_revokelogin存储过程用于删除存储过程用于删除SQL ServerSQL Server中使用中使用sp_denyloginsp_denylogin或或sp_grantloginsp_grantlogin创建的创建的WindowsWindows身份认证模式登录名,它的基本语法如下:身份认证模式登录名,它的基本语法如下:sp_revokelogin 'sp_revokelogin '用户或用户组名用户或用户组名' ' 【【例例11-6】】 p使用使用sp_revokeloginsp_revokelogin存储过程删除用户存储过程删除用户LEE\publicLEE\public对应的对应的SQL ServerSQL Server登录账户。

      登录账户p具体语句如下:具体语句如下:sp_revokelogin 'LEE\public'sp_revokelogin 'LEE\public'p执行结果为:执行结果为:已废除已废除 'LEE\public' 'LEE\public' 的登录访问权的登录访问权从登录列表中可以看到,从登录列表中可以看到,LEE\publicLEE\public已经被删已经被删除 ((3))sp_password存储过程存储过程 psp_passwordsp_password存储过程用于修改存储过程用于修改SQL ServerSQL Server登录登录的密码,它的基本语法如下:的密码,它的基本语法如下:sp_password 'sp_password '旧密码旧密码', '', '新密码新密码', '', '登录名登录名' 'p【【例例11-711-7】】使用使用sp_passwordsp_password存储过程将登录账存储过程将登录账户户leelee的密码修改为的密码修改为222222222222p具体语句如下:具体语句如下:sp_password '111111', '222222', 'lee'sp_password '111111', '222222', 'lee'p执行结果为:执行结果为:密码已更改。

      密码已更改 ((4))sp_droplogin存储过程存储过程 ((3 3))sp_droploginsp_droplogin存储过程用于删除存储过程用于删除SQL SQL ServerServer登录账户,以阻止使用该登录账户登录账户,以阻止使用该登录账户访问访问SQL ServerSQL Server,它的基本语法如下:,它的基本语法如下:sp_droplogin 'sp_droplogin '登录名称登录名称' '【【例例11-811-8】】使用使用sp_droploginsp_droplogin存储过程删除登存储过程删除登录账户录账户leelee具体语句如下:具体语句如下:sp_droplogin 'lee'sp_droplogin 'lee'执行结果为:执行结果为:登录已除去登录已除去 11.3  数据库用户数据库用户 11.3.1 数据库用户概述11.3.2 新建数据库用户11.3.3 修改和删除数据库用户 11.3.1  数据库用户概述数据库用户概述 pSQL ServerSQL Server中有两个特殊的数据库用户,中有两个特殊的数据库用户,即即dbodbo和和guestguest。

      pdbodbo也称数据库所有者,是具有在数据也称数据库所有者,是具有在数据库中执行所有活动的权限的用户,它与库中执行所有活动的权限的用户,它与登录账户登录账户sasa相对应pguestguest用户账户允许没有用户账户的登用户账户允许没有用户账户的登录访问数据库当满足下列所有条件时,录访问数据库当满足下列所有条件时,登录采用登录采用guestguest用户的标识用户的标识 11.3.2  新建数据库用户新建数据库用户1 1..在在SQL SQL Server Server Management Management StudioStudio中中管管理理用用户户2 2.使用.使用CREATE USERCREATE USER语句创建用户语句创建用户3 3..使使用用sp_grantdbaccesssp_grantdbaccess存存储储过过程程创创建建数数据据库库用户用户 1.在.在SQL Server Management Studio中管中管理用户理用户 在在SQL Server Management StudioSQL Server Management Studio中,展开要添中,展开要添加用户的数据库,例如加用户的数据库,例如HrSystemHrSystem,双击,双击“安安全性全性”/ /“用户用户”项,可以查看当前数据库中项,可以查看当前数据库中所有存在的用户,如图所有存在的用户,如图11-711-7所示。

      所示 “新建用户新建用户”对话框对话框 右击右击“用户用户”项,在弹出菜项,在弹出菜单中选择单中选择“新新建用户建用户”,打,打开开“新建用户新建用户”对话框,如对话框,如图图11-811-8所示 2.使用.使用CREATE USER语句创建用户语句创建用户 pCREATE USERCREATE USER语句创建用户的基本语法结构如语句创建用户的基本语法结构如下:下:CREATE USER user_nameCREATE USER user_name  [ { { FOR | FROM } [ { { FOR | FROM } { { LOGIN login_name LOGIN login_name } } | WITHOUT LOGIN | WITHOUT LOGIN ] ]     [ WITH DEFAULT_SCHEMA = schema_name ][ WITH DEFAULT_SCHEMA = schema_name ] 【【例例11-9】】 p创建登录名创建登录名leelee,然后创建同名的用户,代码,然后创建同名的用户,代码如下:如下:CREATE LOGIN lee CREATE LOGIN lee WITH PASSWORD = 'Abc12345'; WITH PASSWORD = 'Abc12345';GOGOUSE HrSystem;USE HrSystem;GOGOCREATE USER lee;CREATE USER lee;GOGO 3.使用.使用sp_grantdbaccess存储过程创建数存储过程创建数据库用户据库用户p使用使用sp_grantdbaccesssp_grantdbaccess存储过程可以存储过程可以将将SQL ServerSQL Server登录和登录和WindowsWindows用户(用用户(用户组)指定为当前数据库用户,并使户组)指定为当前数据库用户,并使其能够被授予在数据库中执行活动的其能够被授予在数据库中执行活动的权限。

      它的基本语法如下:权限它的基本语法如下:sp_grantdbaccess 'sp_grantdbaccess '登录名登录名'[, ''[, '数据库数据库用户名用户名']'] 【【例例11-10】】 p使用使用sp_grantdbaccesssp_grantdbaccess存储过程为登录账户存储过程为登录账户leelee创建数据库用户创建数据库用户p具体语句如下:具体语句如下:sp_grantdbaccess 'lee'sp_grantdbaccess 'lee' 1.3.3  修改和删除数据库用户修改和删除数据库用户 p1 1.使用.使用SQL Server Management StudioSQL Server Management Studio修修改数据库用户改数据库用户p2 2.使用.使用SQL Server Management StudioSQL Server Management Studio删删除数据库用户除数据库用户p3 3.使用.使用ALTER USERALTER USER语句修改用户信息语句修改用户信息p4 4.使用.使用DROP USERDROP USER语句删除数据库用户语句删除数据库用户 1.使用.使用SQL Server Management Studio修修改数据库用户改数据库用户p在在SQL Server Management StudioSQL Server Management Studio中,右键中,右键单击用户,选择单击用户,选择“属性属性”命令,就可以打开命令,就可以打开“属性属性”对话框。

      对话框用户属性用户属性”对话框与图对话框与图11-811-8所示的所示的“新建用户新建用户”对话框格式相同,对话框格式相同,可以在此对话框中修改用户信息不能修改可以在此对话框中修改用户信息不能修改数据库用户名,但可以设置用户所属的架构数据库用户名,但可以设置用户所属的架构和角色 2.使用.使用SQL Server Management Studio删删除数据库用户除数据库用户 p在在SQL Server Management StudioSQL Server Management Studio中,右击用中,右击用户名,选择户名,选择“删除删除”命令,可以删除用户命令,可以删除用户IDID 3.使用.使用ALTER USER语句修改用户信息语句修改用户信息p使用使用ALTER USERALTER USER语句只能修改用户名语句只能修改用户名和架构信息,语法如下:和架构信息,语法如下:ALTER USER user_name ALTER USER user_name      WITH [ ,...n ]WITH [ ,...n ] ::= ::=      NAME = new_user_name NAME = new_user_name      | DEFAULT_SCHEMA = schema_name| DEFAULT_SCHEMA = schema_name 【【例例11-11】】 p将用户将用户leelee改名为改名为johneyjohney,可以使用下,可以使用下面的语句:面的语句:ALTER USER lee WITH NAME = johneyALTER USER lee WITH NAME = johney 3.使用.使用sp_revokedbaccess存储过程删除数存储过程删除数据库用户据库用户 p存储过程sp_revokedbaccess的功能是删除指定的数据库用户,它的基本语法如下:sp_revokedbaccess '数据库用户名' 【例11-12】 p使用使用sp_revokedbaccesssp_revokedbaccess存储过程删除数存储过程删除数据库用户据库用户leelee。

      p具体语句如下:具体语句如下:sp_revokedbaccess 'lee'sp_revokedbaccess 'lee'p执行结果为:执行结果为:用户已从当前数据库中除去用户已从当前数据库中除去 4.使用.使用DROP USER语句删除数据库用户语句删除数据库用户 pDROP USERDROP USER语句的语法结构如下:语句的语法结构如下:DROP USER 'DROP USER '数据库用户名数据库用户名' 'p【【例例11-1311-13】】要删除用户要删除用户johneyjohney,可以,可以使用下面的语句:使用下面的语句:DROP USER johneyDROP USER johney 11.4  角色角色 p11.4.1 11.4.1 角色管理角色管理p11.4.2 11.4.2 管理角色中的用户管理角色中的用户 11.4.1  角色管理角色管理 p1 1.固定服务器角色.固定服务器角色p2 2.固定数据库角色.固定数据库角色p3 3.用户自定义的数据库角色.用户自定义的数据库角色 1.固定服务器角色.固定服务器角色角 色 名说 明sysadmin可以在SQL Server中执行任何活动serveradmin可以设置服务器范围的配置选项,关闭服务器setupadmin可以管理链接服务器和启动过程securityadmin可以管理登录和CREATE DATABASE权限,还可以读取错误日志和更改密码processadmin可以管理在SQL Server中运行的进程dbcreator可以创建、更改和除去数据库diskadmin可以管理磁盘文件bulkadmin可以执行BULK INSERT(大容量数据插入)语句 2.固定数据库角色.固定数据库角色 固定数据库角色说 明public每个数据库用户都属于public角色db_owner在数据库中有全部权限db_accessadmin可以增加或者删除数据库用户、用户组和角色db_securityadmin管理数据库角色的角色和成员,并管理数据库中的语句和对象权限db_ddladmin可以添加、修改或除去数据库中的对象(运行所有DDL)db_backupoperator可以备份和恢复数据库db_datareader可以选择数据库内任何用户表中的所有数据db_datawriter可以更改数据库内任何用户表中的所有数据db_denydatareader不能选择数据库内任何用户表中的任何数据db_denydatawriter不能更改数据库内任何用户表中的任何数据 3.用户自定义的数据库角色.用户自定义的数据库角色 p打开打开SQL Server Management StudioSQL Server Management Studio,在对象资源管理器中,展,在对象资源管理器中,展开要在其中创建角色的数据库,然后展开开要在其中创建角色的数据库,然后展开“安全性安全性”→→“角色角色”。

      如果要创建数据库角色,则右键单击如果要创建数据库角色,则右键单击“数据库角色数据库角色”, ,在弹出菜单在弹出菜单中选择中选择“新建数据库角色新建数据库角色”,打开,打开“新建数据库角色新建数据库角色”窗口,如窗口,如图图11-911-9所示 新建应用程序角色新建应用程序角色 p如果要创建应用程序角如果要创建应用程序角色,则右键单击色,则右键单击“应用应用程序角色程序角色”,在弹出菜,在弹出菜单中单击单中单击“新建应用程新建应用程序角色序角色”命令,打开如命令,打开如图图11-1011-10所示的对话框所示的对话框在在“角色名称角色名称”文本框文本框中输入新角色名称,选中输入新角色名称,选择或输入角色的所有者,择或输入角色的所有者,然后选中角色拥有的架然后选中角色拥有的架构与数据库角色不同,构与数据库角色不同,在创建应用程序角色时,在创建应用程序角色时,需要指定角色的密码,需要指定角色的密码,而且不能向角色中添加而且不能向角色中添加用户配置完成后,单用户配置完成后,单击击“确定确定”按钮按钮. . 使用使用CREATE ROLE语句语句 可以使用可以使用CREATE ROLECREATE ROLE语句创建数据库角色,其语语句创建数据库角色,其语法结构如下:法结构如下:CREATE ROLE role_name [ AUTHORIZATION CREATE ROLE role_name [ AUTHORIZATION owner_name ]owner_name ]参数说明如下:参数说明如下:prole_namerole_name指定角色名称。

      指定角色名称pAUTHORIZATION owner_nameAUTHORIZATION owner_name指定拥有新角色的指定拥有新角色的数据库用户或角色如果未指定用户,则执行数据库用户或角色如果未指定用户,则执行 CREATE ROLECREATE ROLE的用户将拥有该角色的用户将拥有该角色 【【例例11-14】】 p在数据库在数据库HrSystemHrSystem中创建数据库角色中创建数据库角色new_dbrolenew_dbrole,可以使用如下代码:,可以使用如下代码:USE HrSystemUSE HrSystemCREATE ROLE new_dbroleCREATE ROLE new_dbrole 使用使用CREATE APPLICATION ROLE语句语句 可以使用可以使用CREATE APPLICATION ROLECREATE APPLICATION ROLE语句创建应用程序角色,其语法语句创建应用程序角色,其语法结构如下:结构如下:CREATE APPLICATION ROLE application_role_name CREATE APPLICATION ROLE application_role_name WITH PASSWORD = 'password' [ , DEFAULT_SCHEMA = WITH PASSWORD = 'password' [ , DEFAULT_SCHEMA = schema_name ]schema_name ]参数说明如下:参数说明如下:papplication_role_nameapplication_role_name指定应用程序角色的名称。

      指定应用程序角色的名称pPASSWORD = 'password'PASSWORD = 'password'指定用于激活应用程序角色的密码指定用于激活应用程序角色的密码pDEFAULT_SCHEMA = schema_nameDEFAULT_SCHEMA = schema_name指定服务器在解析该角色的对象指定服务器在解析该角色的对象名称时将搜索的第一个架构如果未定义名称时将搜索的第一个架构如果未定义DEFAULT_SCHEMADEFAULT_SCHEMA,则应,则应用程序角色将使用用程序角色将使用DBODBO作为其默认架构作为其默认架构schema_name schema_name 可以是数据可以是数据库中不存在的架构库中不存在的架构 【【例例11-15】】 p在数据库在数据库HrSystemHrSystem中创建应用程序角色中创建应用程序角色new_approlenew_approle,密码为,密码为approleapprole,代码如下:,代码如下:USE HrSystemUSE HrSystemCREATE APPLICATION ROLE new_approle CREATE APPLICATION ROLE new_approle WITH PASSWORD = 'approle'WITH PASSWORD = 'approle' sp_addrole存储过程存储过程 psp_addrolesp_addrole存储过程的功能是创建存储过程的功能是创建SQL ServerSQL Server角色,它的基本语法如下:角色,它的基本语法如下:sp_addrole 'sp_addrole '数据库角色名数据库角色名' 'p【【例例11-1611-16】】使用使用sp_addrolesp_addrole存储过程创建数据存储过程创建数据库角色库角色newrolenewrole。

      p具体语句如下:具体语句如下:sp_addrole 'newrole'sp_addrole 'newrole'p执行结果为:执行结果为:新角色已添加新角色已添加 sp_droprole存储过程存储过程 psp_droprolesp_droprole存储过程的功能是删除存储过程的功能是删除SQL ServerSQL Server角色,它的基本语法如下:角色,它的基本语法如下:sp_droprole 'sp_droprole '数据库角色名数据库角色名' 'p【【例例11-1711-17】】使用使用sp_droprolesp_droprole存储过程删除数存储过程删除数据库角色据库角色newrolenewrolep具体语句如下:具体语句如下:sp_droprole 'newrole'sp_droprole 'newrole'p执行结果为:执行结果为:角色已除去角色已除去 11.4.2  管理角色中的用户管理角色中的用户 p1 1..在在SQL SQL Server Server Management Management StudioStudio中中添加和删除角色成员添加和删除角色成员p2 2..使使用用sp_addrolemembersp_addrolemember存存储储过过程程添添加加角色成员角色成员p3 3..使使用用sp_droprolemembersp_droprolemember存存储储过过程程删删除角色成员除角色成员 1.在.在SQL Server Management Studio中添中添加和删除角色成员加和删除角色成员p在在SQL SQL Server Server Management Management StudioStudio中右中右键单击数据键单击数据库角色,在库角色,在快捷菜单中快捷菜单中选择选择“属性属性”命令,打命令,打开开“数据库数据库角色属性角色属性”窗口,如图窗口,如图11-1111-11所示。

      所示  选择数据库用户或角色选择数据库用户或角色 p单击单击“添加添加”按钮,打开按钮,打开“选择数据库用户或角色选择数据库用户或角色”对话框,如对话框,如图图11-1211-12所示p以直接输入用户名,也可以单击以直接输入用户名,也可以单击“浏览浏览”按钮,打开按钮,打开“查找对象查找对象”对话框,从列表中选择用户,如图对话框,从列表中选择用户,如图11-1311-13所示列表框中显示了所示列表框中显示了当前数据库中所有用户名和角色,不包括当前数据库中所有用户名和角色,不包括dbodbo选择一个用户,单选择一个用户,单击击“确定确定”按钮,可以将用户添加到角色中按钮,可以将用户添加到角色中 2.使用.使用sp_addrolemember存储过程添加角存储过程添加角色成员色成员 psp_addrolemembersp_addrolemember存储过程的功能是向角色中存储过程的功能是向角色中添加用户,基本语法如下:添加用户,基本语法如下:sp_addrolemember 'sp_addrolemember '数据库角色名数据库角色名', '', '数据库用数据库用户名户名' 'p【【例例11-1811-18】】使用使用sp_addrolemembersp_addrolemember存储过程向存储过程向数据库角色数据库角色new_dbrolenew_dbrole中添加用户中添加用户johneyjohney,具,具体语句如下:体语句如下:USE HrSystemUSE HrSystemsp_addrolemember 'new_dbrole', 'johney'sp_addrolemember 'new_dbrole', 'johney'p注意,语句中指定的角色和用户必须已经存在。

      注意,语句中指定的角色和用户必须已经存在 3.使用.使用sp_droprolemember存储过程删除存储过程删除角色成员角色成员psp_droprolemembersp_droprolemember存储过程的功能是从角色中存储过程的功能是从角色中删除用户,它的基本语法如下:删除用户,它的基本语法如下:sp_droprolemember 'sp_droprolemember '数据库角色名数据库角色名', '', '数据库用数据库用户名户名' 'p【【例例11-1911-19】】使用使用sp_addrolemembersp_addrolemember存储过程从存储过程从数据库角色数据库角色new_dbrolenew_dbrole中删除用户中删除用户johneyjohney,具,具体语句如下:体语句如下:USE HrSystemUSE HrSystemGOGOsp_droprolemember 'new_dbrole', 'johney'sp_droprolemember 'new_dbrole', 'johney' 11.5  权限管理权限管理 p11.5.1 11.5.1 权限的种类权限的种类p11.5.2 11.5.2 设置权限设置权限 11.5.1  权限的种类权限的种类p1 1.对象权限.对象权限p2 2.语句权限.语句权限p3 3.暗示性权限.暗示性权限 1.对象权限.对象权限对象权限表示一个用户对特定的数据库对象,如表、视图、对象权限表示一个用户对特定的数据库对象,如表、视图、字段等的操作权限,如用户能否进行查询、删除、插入字段等的操作权限,如用户能否进行查询、删除、插入和修改一个表中的行,或能否执行一个存储过程。

      对象和修改一个表中的行,或能否执行一个存储过程对象权限如下权限如下  SELECTSELECT、、INSERTINSERT、、UPDATEUPDATE和和DELETEDELETE语句权限,它们可以语句权限,它们可以应用到整个表或视图中应用到整个表或视图中  SELECTSELECT和和UPDATEUPDATE语句权限,它们可以有选择性地应用到语句权限,它们可以有选择性地应用到表或视图中的单个列上表或视图中的单个列上  SELECTSELECT权限,它们可以应用到用户定义函数权限,它们可以应用到用户定义函数  INSERTINSERT和和DELETEDELETE语句权限,它们会影响整行,因此只可语句权限,它们会影响整行,因此只可以应用到表或视图中,而不能应用到单个列上以应用到表或视图中,而不能应用到单个列上  EXECUTEEXECUTE语句权限,它可以影响存储过程和函数语句权限,它可以影响存储过程和函数 2.语句权限.语句权限 语句权限表示一个用户对数据库的操作权限,如能否执行语句权限表示一个用户对数据库的操作权限,如能否执行创建和删除对象的语句,能否执行备份和恢复数据库的创建和删除对象的语句,能否执行备份和恢复数据库的语句等。

      语句权限如下语句权限如下  BACKUP DATABASEBACKUP DATABASE:备份数据库的权限备份数据库的权限  BACKUP LOGBACKUP LOG:备份数据库日志的权限备份数据库日志的权限  CREATE DATABASECREATE DATABASE:创建数据库的权限创建数据库的权限  CREATE DEFAULTCREATE DEFAULT:创建默认值对象的权限创建默认值对象的权限  CREATE FUNCTIONCREATE FUNCTION:创建函数的权限创建函数的权限  CREATE PROCEDURECREATE PROCEDURE:创建存储过程的权限创建存储过程的权限  CREATE RULECREATE RULE:创建规则的权限创建规则的权限  CREATE TABLECREATE TABLE:创建表的权限创建表的权限  CREATE VIEWCREATE VIEW:创建视图的权限创建视图的权限 3.暗示性权限.暗示性权限 p暗示性权限指系统安装以后有些用户和角暗示性权限指系统安装以后有些用户和角色不必授权就有的权限。

      例如,色不必授权就有的权限例如,sysadminsysadmin固定服务器角色成员自动继承在固定服务器角色成员自动继承在SQL SQL ServerServer安装中进行操作或查看的全部权限安装中进行操作或查看的全部权限p数据库对象所有者拥有暗示性权限,可以数据库对象所有者拥有暗示性权限,可以对所拥有的对象执行一切活动例如,拥对所拥有的对象执行一切活动例如,拥有表的用户可以查看、添加或删除数据,有表的用户可以查看、添加或删除数据,更改表定义,或控制允许其他用户对表进更改表定义,或控制允许其他用户对表进行操作的权限行操作的权限 11.5.2  设置权限设置权限 p1 1.使用.使用SQL Server Management StudioSQL Server Management Studio管理对象权限管理对象权限p2 2.使用.使用SQL Server Management StudioSQL Server Management Studio管理数据库权限管理数据库权限p3 3.使用.使用SQL Server Management StudioSQL Server Management Studio管理用户的权限管理用户的权限p4 4.使用.使用GRANTGRANT语句语句 p5 5.使用.使用DENYDENY语句语句p6 6.使用.使用REVOKEREVOKE语句语句 1.使用.使用SQL Server Management Studio管管理对象权限理对象权限 p在在SQL Server SQL Server Management StudioManagement Studio中,右键单击一个表、中,右键单击一个表、视图和存储过程(例视图和存储过程(例如右键单击表如右键单击表EmployeesEmployees),在快),在快捷菜单中选择捷菜单中选择“属性属性”,打开表属性窗口。

      打开表属性窗口在在“选择项选择项”列表中列表中选择选择“权限权限”,可以,可以设置表的权限,如图设置表的权限,如图11-1411-14所示 选择用户或角色选择用户或角色 p单击单击“搜索搜索”按按钮,打开钮,打开“选择选择用户或角色用户或角色”对对话框,如图话框,如图11-1511-15所示可以直接所示可以直接输入用户或角色输入用户或角色名,也可以单击名,也可以单击“浏览浏览”按钮,按钮,打开打开“查找对象查找对象”对话框,选择对话框,选择用户或角色,如用户或角色,如图图11-1611-16所示 管理数据库对象权限管理数据库对象权限  2.使用.使用SQL Server Management Studio管管理数据库权限理数据库权限 p在在SQL Server SQL Server Management StudioManagement Studio中,右键单击数据库,中,右键单击数据库,在弹出菜单中选择在弹出菜单中选择“属性属性”,打开数据库,打开数据库属性对话框在属性对话框在“选选择页择页”列表中单击列表中单击“权限权限”,可以设置数,可以设置数据库权限如图据库权限如图11-11-1818所示。

      所示 3.使用.使用SQL Server Management Studio管管理用户的权限理用户的权限 p在在SQL Server SQL Server Management Management StudioStudio中,右键中,右键单击一个用户,单击一个用户,在弹出菜单中选在弹出菜单中选择择“属性属性”,打,打开开“数据库用户数据库用户属性属性”窗口,在窗口,在“选择页选择页”列表列表中单击中单击“安全对安全对象象”,可以设置,可以设置数据库权限,如数据库权限,如图图11-1911-19所示 “添加对象添加对象”对话框对话框 p单击单击“搜索搜索”按钮,打开按钮,打开“添加对象添加对象”对对话框,如图话框,如图11-2011-20所示 选择对象选择对象 p这里选择这里选择“选定选定对象对象”,单击,单击“确定确定”按钮,打按钮,打开开“选择对象选择对象”对话框,如图对话框,如图11-2111-21所示p单击单击“对象类型对象类型”按钮,打开按钮,打开“选择对象类型选择对象类型”对话框,如图对话框,如图11-2211-22所示 “查找对象查找对象”对话框对话框  设置用户权限设置用户权限  4.使用.使用GRANT语句语句 p((1 1)授予语句权限)授予语句权限p使用使用GRANTGRANT语句授予用户或角色语句权限语句授予用户或角色语句权限的基本语法如下:的基本语法如下:GRANT {ALL | GRANT {ALL | 语句语句 [, ...n]} TO [, ...n]} TO 安全账安全账户户 [, ...n][, ...n]p其中,安全账户必须是当前数据库中的用其中,安全账户必须是当前数据库中的用户、角色或组,包括:户、角色或组,包括:SQL Server SQL Server 角色;角色;SQL ServerSQL Server用户;用户;Windows NTWindows NT组;组;Windows NTWindows NT用户。

      用户 【【例例11-20】】 p使用使用GRANTGRANT语句对用户语句对用户leelee授予创建表和创授予创建表和创建视图的权限建视图的权限p具体语句如下:具体语句如下:USE HrSystem;USE HrSystem;GOGOGRANT CREATE TABLE, CREATE VIEW TO GRANT CREATE TABLE, CREATE VIEW TO leelee ((2)授予对象权限)授予对象权限 p使用使用GRANTGRANT语句授予用户或角色对象权限的基本语法如语句授予用户或角色对象权限的基本语法如下:下:GRANTGRANT { ALL | { ALL | 权限权限 [ ,...n ] }[ ,...n ] } { [ ( { [ ( 列名列名 [ ,...n ] ) ] ON { [ ,...n ] ) ] ON { 表表 | | 视图视图 } } | ON { | ON { 表表 | | 视图视图 } [ ( } [ ( 列名列名 [ ,...n ] ) ][ ,...n ] ) ] | ON | ON 存储过程存储过程 | ON| ON用户自定义函数用户自定义函数 } } TO TO 安全账户安全账户 [ ,...n ] [ ,...n ] [ WITH GRANT OPTION ] [ WITH GRANT OPTION ] [ AS { [ AS { 组组 | | 角色角色 } ]} ] 【【例例11-21】】 p使用使用GRANTGRANT语句对角色语句对角色newrolenewrole授予对表授予对表EmployeesEmployees的的INSERTINSERT、、UPDATEUPDATE和和DELETEDELETE的的权限。

      权限p具体语句如下:具体语句如下:USE HrSystem;USE HrSystem;GRANT INSERT, UPDATE, DELETE ON GRANT INSERT, UPDATE, DELETE ON Employees TO newroleEmployees TO newrole 【【例例11-22】】 p使用使用GRANTGRANT语句授予用户语句授予用户MaryMary、、JohnJohn和和TomTom对表对表EmployeesEmployees的插入、修改、删除权的插入、修改、删除权限p具体语句如下:具体语句如下:USE HrSystemUSE HrSystemGRANT INSERT, UPDATE, DELETE ON GRANT INSERT, UPDATE, DELETE ON Employees TO Mary, John, TomEmployees TO Mary, John, Tom 【【例例11-23】】 p使用使用GRANTGRANT语句授予用户语句授予用户Log1Log1对表对表EmployeesEmployees的的Emp_nameEmp_name和和TitleTitle列具有修改权限。

      列具有修改权限p具体语句如下:具体语句如下:USE HrSystemUSE HrSystemGRANT UPDATE(Emp_name , Title) ON GRANT UPDATE(Emp_name , Title) ON Employees TO Log1Employees TO Log1p也可以写成:也可以写成:USE HrSystemUSE HrSystemGRANT UPDATE ON Employees (Emp_name , GRANT UPDATE ON Employees (Emp_name , Title) TO Log1Title) TO Log1 【【例例11-24】】 p使用使用GRANTGRANT语句将对语句将对MarketMarket数据库的数据库的CustumersCustumers表的表的SELECTSELECT、、INSERTINSERT权限授予权限授予用户用户ZhangZhang,并允许用户,并允许用户ZhangZhang再将该权限再将该权限授予其他用户或角色授予其他用户或角色p具体语句如下:具体语句如下:USE MarketUSE MarketGRANT SELECT , INSERT ON Custumers TO GRANT SELECT , INSERT ON Custumers TO Zhang WITH GRANT OPTIONZhang WITH GRANT OPTION 【【例例11-25】】 p用户用户TomTom将对表将对表Table1Table1的的SELECTSELECT权限授予权限授予Role1Role1角色,指定角色,指定WITH GRANT OPTIONWITH GRANT OPTION子句。

      子句p相应的相应的GRANTGRANT语句如下:语句如下:GRANT SELECT ON Table1 TO Role1 WITH GRANT GRANT SELECT ON Table1 TO Role1 WITH GRANT OPTIONOPTION p设用户设用户JerryJerry是是Role1Role1的成员,他要将表的成员,他要将表Table1Table1上的上的SELECTSELECT权限授予用户权限授予用户JackJack(设(设JackJack不是不是Role1Role1的成员)相应的的成员)相应的GRANTGRANT语句如下:语句如下:GRANT SELECT ON Table1 TO Jack AS role1GRANT SELECT ON Table1 TO Jack AS role1 5.使用.使用DENY语句语句 p使用使用DENYDENY语句可以拒绝用户或角色的语句语句可以拒绝用户或角色的语句权限和对象权限权限和对象权限p((1 1)拒绝语句权限)拒绝语句权限p使用使用DENYDENY语句拒绝用户的语句权限的基本语句拒绝用户的语句权限的基本语法如下:语法如下:DENY {ALL | DENY {ALL | 语句语句 [, ...n]} TO [, ...n]} TO 安全账安全账户户 [, ...n][, ...n] 【【例例11-26】】 p使用使用DENYDENY语句对用户语句对用户leelee拒绝创建表和创拒绝创建表和创建视图的权限。

      建视图的权限p具体语句如下:具体语句如下:DENY CREATE TABLE, CREATE VIEW TO leeDENY CREATE TABLE, CREATE VIEW TO lee ((2)拒绝对象权限)拒绝对象权限 p使用使用DENYDENY语句拒绝用户或角色对象权限的基本语句拒绝用户或角色对象权限的基本语法如下:语法如下:DENYDENY { ALL | { ALL | 权限权限 [ ,...n ] }[ ,...n ] } { [ ( { [ ( 列名列名 [ ,...n ] ) ] ON { [ ,...n ] ) ] ON { 表表 | | 视图视图 } } | ON { | ON {表表 | | 视图视图} [ (} [ (列名列名 [ ,...n ] ) [ ,...n ] ) ] ] | ON { | ON { 存储过程存储过程| | 用户自定义函数用户自定义函数 }}}}TO TO 安全账户安全账户 [ ,...n ][ ,...n ][ CASCADE ][ CASCADE ] 【【例例11-27】】 p使用使用DENYDENY语句拒绝角色语句拒绝角色newrolenewrole对表对表EmployeesEmployees的的INSERTINSERT、、UPDATEUPDATE和和DELETEDELETE的的权限。

      权限p具体语句如下:具体语句如下:USE HrSystemUSE HrSystemDENY INSERT, UPDATE, DELETE ON DENY INSERT, UPDATE, DELETE ON Employees TO newroleEmployees TO newrole 【【例例11-28】】 pCASCADECASCADE选项的作用选项的作用p设管理员使用以下设管理员使用以下GRANTGRANT语句对语句对LiuLiu进行授权,使用户进行授权,使用户LiuLiu具有对具有对SalesSales表的表的SELECTSELECT权限GRANT SELECT ON Sales TO Liu WITH GRANT OPTIONGRANT SELECT ON Sales TO Liu WITH GRANT OPTIONp因此,用户因此,用户LiuLiu具有了将具有了将salessales对象的对象的SELECTSELECT权限授予其权限授予其他用户的权限,于是用户他用户的权限,于是用户LiuLiu执行以下授权:执行以下授权:GRANT SELECT ON Sales TO GaoGRANT SELECT ON Sales TO Gaop这时,管理员执行下面语句将拒绝用户这时,管理员执行下面语句将拒绝用户LiuLiu和和GaoGao对对salessales表的表的SELECTSELECT权限,以及权限,以及LiuLiu的的WITH GRANT OPTIONWITH GRANT OPTION权限。

      权限DENY SELECT ON sales TO Liu CASCADEDENY SELECT ON sales TO Liu CASCADE 6.使用.使用REVOKE语句语句p使用使用REVOKEREVOKE语句可以废除语句权限和对象权限语句可以废除语句权限和对象权限p((1 1)废除语句权限)废除语句权限p使用使用REVOKEREVOKE语句废除语句权限的基本语法如下:语句废除语句权限的基本语法如下:REVOKE {ALL | REVOKE {ALL | 语句语句 [, ...n]} FROM [, ...n]} FROM 安全账户安全账户 [, ...n][, ...n]p【【例例11-2911-29】】使用使用REVOKEREVOKE语句废除用户语句废除用户leelee创建创建表和创建视图的权限表和创建视图的权限p具体语句如下:具体语句如下:REVOKE CREATE TABLE, CREATE VIEW FROM leeREVOKE CREATE TABLE, CREATE VIEW FROM lee ((2)废除对象权限)废除对象权限p使用使用REVOKEREVOKE语句废除用户或角色对象权限的基本语法如语句废除用户或角色对象权限的基本语法如下:下:REVOKE [ GRANT OPTION FOR ]REVOKE [ GRANT OPTION FOR ] { ALL | { ALL | 权限权限 [ ,...n ] }[ ,...n ] } { [ ( { [ ( 列名列名 [ ,...n ] ) ] ON { [ ,...n ] ) ] ON { 表表 | | 视图视图 } } | ON { | ON { 表表 | | 视图视图 } [ ( } [ ( 列名列名 [ ,...n ] ) ][ ,...n ] ) ] | ON { | ON { 存储过程存储过程 | | 用户自定义函数用户自定义函数 } }} }{ TO | FROM }{ TO | FROM } 安全账户安全账户 [ ,...n ] [ ,...n ] [ CASCADE ] [ CASCADE ] [ AS { [ AS { 组组 | | 角色角色} ] } ] 【【例例11-30】】 p使用使用REVOKEREVOKE语句废除角色语句废除角色newrolenewrole对表对表EmployeesEmployees的的INSERTINSERT、、UPDATEUPDATE和和DELETEDELETE的的权限。

      权限p具体语句如下:具体语句如下:USE HrSystemUSE HrSystemREVOKE INSERT, UPDATE, DELETE ON REVOKE INSERT, UPDATE, DELETE ON Employees TO newroleEmployees TO newrole 【【例例11-31】】 p废除用户废除用户yuanyuan对对publisherspublishers表的表的pub_idpub_id列列的修改权限的修改权限p具体语句如下:具体语句如下:REVOKE UPDATE(pub_id) ON publishers REVOKE UPDATE(pub_id) ON publishers FROM yuanFROM yuan 【【例例11-32】】 pCASCADECASCADE选项的作用选项的作用p设管理员使用以下设管理员使用以下GRANTGRANT语句对语句对LiuLiu进行授权,使用户进行授权,使用户LiuLiu具有对具有对SalesSales表的表的SELECTSELECT权限pGRANT SELECT ON Sales TO Liu WITH GRANT OPTIONGRANT SELECT ON Sales TO Liu WITH GRANT OPTIONp因此,用户因此,用户LiuLiu具有了将具有了将salessales对象的对象的SELECTSELECT权限授予其他用户的权限授予其他用户的权限,于是用户权限,于是用户LiuLiu执行以下授权:执行以下授权:GRANT SELECT ON Sales TO GaoGRANT SELECT ON Sales TO Gaop这时,管理员执行以下语句可废除用户这时,管理员执行以下语句可废除用户LiuLiu的的WITH GRANT OPTIONWITH GRANT OPTION权限,以及用户权限,以及用户GaoGao所获得的对所获得的对SalesSales表的表的SELECTSELECT权限,但权限,但LiuLiu仍具仍具有对有对SalesSales表的表的SELECTSELECT权限。

      权限REVOKE GRANT OPTION FOR SELECT ON sales FROM Liu CASCADEREVOKE GRANT OPTION FOR SELECT ON sales FROM Liu CASCADE 【【例例11-33】】 p设用户设用户TomTom执行以下语句对角色执行以下语句对角色Role1Role1进行了授进行了授权:权:GRANT SELECT ON Table1 TO Role1 WITH GRANT GRANT SELECT ON Table1 TO Role1 WITH GRANT OPTIONOPTIONp用户用户JerryJerry是角色是角色Role1Role1中的成员,于是中的成员,于是JerryJerry作为角色作为角色Role1Role1的成员执行以下授权:的成员执行以下授权:1.1.GRANT SELECT ON Table1 TO Jack AS role1GRANT SELECT ON Table1 TO Jack AS role1p现在,用户现在,用户JerryJerry要废除用户要废除用户JackJack所获得的对所获得的对Table1Table1表的表的SELECTSELECT权限,可以使用以下语句:权限,可以使用以下语句:REVOKE SELECT ON Table1 FROM Jack AS Role1REVOKE SELECT ON Table1 FROM Jack AS Role1 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.