知识大全 通过特权管理安全性(2)

Posted 特权

篇首语:重要的不是发生了什么事情,而是要做哪些事来改善它。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 通过特权管理安全性(2)相关的知识,希望对你有一定的参考价值。

SQL实战新手入门:通过特权管理安全性(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   通过特权管理安全性( )

  安全账户指的是SQL Server用户 SQL Server角色 Windows用户或者Windows组 SQLServer为安全账户定义了一些不同的粒度 授予一个用户(既可以是SQL Server用户 也可以是Windows用户)的特权仅仅影响到该用户 授予一个角色或Windows NT组的特权将影响到该角色或组中的所有成员

  在LIBRARY数据库的上下文中 将CREATE DATABASE语句的权限授予一个用户或角色将产生如下所示的错误

  USE library

  GRANT CREATE DATABASE

  TO PUBLIC;

  CREATE DATABASE permission can only be granted in the master database

  将当前上下文切换到master数据库就可以解决这一问题 可以采用类似的办法将访问数据库中对象的特权授予一个角色或者一个用户

  USE library

  GRANT CREATE TABLE

  TO PUBLIC;

  无论是系统级特权还是对象级特权 都可以使用REVOKE语句从一个数据库用户 角色或组上进行撤消 角色指的是授予了权限集的一个命名实体 可以采用类似的方法移除角色所具有的特权

  REVOKE CREATE TABLE

  FROM USER PUBLIC;

  SQL标准还定义了两个子句 RESTRICT和CASCADE 对于RESTRICT选项 仅当数据库中没有废弃的特权时 该语句才能成功执行 例如 可能发生这样的情况 即用户已经将该特权授予了某个其他用户 如果决定无论如何都要撤消特权 并将特权的撤消传播到已经从该用户获得了特权的所有用户 则必须声明CASCADE子句 在支持这两个子句的各种RDBMS实现中 这些子句都是可选的 但在SQL标准中要求至少必须有一个子句 通常情况下 每一种RDBMS在实现该语句时都有一些自己的打算

  REVOKE语句的影响是直接的 如果从PUBLIC撤消了指定的特权 则对于每一个用户 通过PUBLIC获得的特权也将丢失 在这种情况下 直接授予用户或通过角色授予用户的特权将不受影响 撤消系统特权的规则是复杂的 例如 如果从一个角色撤消了某种特权(或角色) 则仅撤消该角色的特权 如果该角色将特权(或角色)授予了另外一个用户(或角色) 则该用户将继续运用这个特权(或角色)

  记住 从一个用户上撤消特权对于该用户已经创建的任何对象都没有影响 当特权被撤消时 所有在该特权下创建的对象将依然保留在数据库中

   使用角色管理安全性

  角色是RDBMS为简化用户的管理任务而引入的一个抽象的概念 它根据某些标准对用户的特权进行分组 通常是根据工作的职责进行划分 例如 如果 名会计人员都需要对日常访问的数十个对象具有相应的特权(另外还需要某些系统级的特权) 那么你可以有两种选择 一是遍历每一个用户并分别授予他们所需要的全部特权 二是创建一个组(角色) 例如ACCOUNTANTS 然后将所有权限授予该角色 并将角色授予组中的所有用户 撤消特权也面临相同的选择 显而易见 采用角色进行管理更加方便

  在某些RDBMS中 除了具有大量预定义的可授予用户的系统角色之外 还提供了创建角色的能力 Oracle g/ g和Microsoft SQL Server 都支持创建角色 而DB 只能使用固定的 预定义的角色(职权)

  Oracle中的角色是一组特权的集合 可以将这些特权授予一个用户或者另外一个角色 也可以从用户或角色中撤消这些特权 因此Oracle提供了一种特权层次结构 在角色可以传递授予它的所有权限之前 必须启用该角色(通过一个SET ROLE语句或者由数据库管理员启用)

  Oracle g/ g具有很多预定义的角色 通过这些角色可以将特权授予用户 对于预定义的角色无法添加新的特权 也无法撤消任何特权

  在Oracle RDBMS中 包(package)是一个由已经预编译的例程(通常是用PL/SQL编写的)组成的集合 它包含在RDBMS中 用户可以通过包中定义的过程和函数来访问数据库的功能 通过将这些功能块分组到包中 就可以建立安全策略 在组的级别上对包的使用进行管理 而无须逐一为这些块分配特权

  下面就是一个在任何一种RDBMS中使用默认选项为LIBRARY数据库创建角色的例子

  CREATE ROLE libUsers;

  现在可以将特权授予该角色(更多信息请参考本章前面曾讨论过的GRANT语句) 然后还可以将特权授予任何需要它的用户 方法是将这些用户分配给libUsers角色

  可以使用SET ROLE语句在当前数据库会话期间启用或禁用ROLE 对于数据库管理员可以设置的并发角色的数量可能会存在一定的限制

  使用ALTER ROLE语句可以修改角色 使用DROP ROLE语句则可以删除角色

  DROP ROLE libUsers;

  直到 版本 IBM DB 都不支持用户定义的角色 它依赖于系统预定义的职权(固定的角色) 可以将用户设置为这些角色的成员 另外IBM DB 还依赖于GROUP 它的行为与其他RDBMS中的角色几乎相同 在 版本中依然支持GROUP 但对角色增加了新的支持 总体而言与Oracle中的角色实现基本一致

  针对数据库对象的某些特权并非与所讨论的各种RDBMS都有关 例如在DB 或Oracle数据库中都具有PACKAGE对象 但在MS SQL Server PostgreSQL和MySQL中并没有这个对象 另外更加混乱的是 对于Oracle和IBM来说 包这个概念具有不同的含义

       返回目录 SQL实战新手入门

       编辑推荐

       Oracle索引技术

       高性能MySQL

cha138/Article/program/SQL/201311/16441

相关参考

认股特权的作用

认股特权的作用根据以往的习惯做法,在新股票出售以前,股东有优先认购的权利。后来美国等国家通过的法律改变了这种优先认股权的性质,现在公司董事出售新股票可以通过以下两种方法:一种是发出优惠权,即认股特权;

知识大全 审计特权用户

Oracle数据库内部安全威胁:审计特权用户  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  普通

新《安全生产法》规定,可以通过保险费率浮动、引进()参与企业安全管理,可以有效促进企业加强安全生产工作。

新《安全生产法》规定,可以通过保险费率浮动、引进()参与企业安全管理,可以有效促进企业加强安全生产工作。A.安全管理公司B.安全咨询公司C.保险公司D.职业经理人【参考答案】C[拓展知识]特种作业人员

新《安全生产法》规定,可以通过保险费率浮动、引进()参与企业安全管理,可以有效促进企业加强安全生产工作。

新《安全生产法》规定,可以通过保险费率浮动、引进()参与企业安全管理,可以有效促进企业加强安全生产工作。A.安全管理公司B.安全咨询公司C.保险公司D.职业经理人【参考答案】C[拓展知识]特种作业人员

股票买卖特权的内容

股票买卖特权的内容在要求购买股票的人数大大超过股票发行数量的情况下,发行公司往往借助认股证书来分配股票购买权。有时,股票买卖特权也被用来作为笼络公司的高级雇员的一种手段。公司给予公司的高级雇员以股票买

最先取得下列侵华特权的国家依次是__

最先取得下列侵华特权的国家依次是_____①修筑铁路②领事裁判权③开设工厂④强占租借地A、英、法、美、日B、法、英、日、德C、俄、法、日、英D、俄、英、日、法答案:B解析:法国最先于I896年争得修筑

知识大全 有哪些软件和百度糯米,美团,大众点评一样有新用户专享特权

有哪些软件和百度糯米,美团,大众点评一样有新用户专享特权饿了么这个aap,我就知道这个,你可以下载看看,很不错的。新用户好像有减免优惠‘有什么软件和百度糯米大众点评美团一样新用户可以几块钱吃自助吗那些

知识大全 公司高层管理人员岗位职责

公司高层管理人员岗位职责1.总经理的职责和权限(1)负责制定并保持公司的质量、环境、职业健康安全方针、目标;并决定有关质量、环境、职业健康安全方针和目标的措施。(2)通过增强职工的意识、积极性和参与程

依据《危险化学品安全管理条例》的规定,下列关于剧毒化学品运输管理的说法,正确的是()。

电力安全生产知识竞赛题:依据《危险化学品安全管理条例》的规定,下列关于剧毒化学品运输管理的说法,正确的是()。A、可以通过内河封闭水域运输剧毒化学品B、禁止通过内河运输剧毒化学品C、安全监管部门负责审

依据《危险化学品安全管理条例》的规定,下列关于剧毒化学品运输管理的说法正确的是()。

电力安全生产知识竞赛题:依据《危险化学品安全管理条例》的规定,下列关于剧毒化学品运输管理的说法正确的是()。A、可以通过内河封闭水域运输剧毒化学品B、禁止通过内河运输剧毒化学品C、安全监管部门负责审批