知识大全 通过特权管理安全性(1)
Posted 特权
篇首语:我永远要记得我所想要的。而不是我所恐惧的。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 通过特权管理安全性(1)相关的知识,希望对你有一定的参考价值。
SQL实战新手入门:通过特权管理安全性(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
通过特权管理安全性( )
RDBMS本质上是一个由对象(模式 表 视图 过程等)和管理这些对象的程序组成的集合 限制对这些对象的访问本质上是一种安全机制 它是在SQL层面上通过特权系统来实现的
特权表示特定用户在访问 创建 操作和销毁数据库中的各种对象上所拥有的权力 也包括执行管理任务 可以将特权授予一个用户或者一个角色(角色的概念将在下一小节中讨论)
可以将特权分为两个大类 系统特权和对象特权 不同数据库厂商对此的定义存在着相当大的差异 更多的细节问题将在本章后面有关特定于RDBMS的实现的小节中进行介绍
GRANT语句
SQL标准将特权定义为用户被授权执行的操作类型 只有在授予访问权限的对象和系统上用户才能执行这些操作 在本书讨论的各种RDBMS中 所有这些特权都是一致的
可以将特权授予一个单独的用户 也可以授予一个角色 可以使用GRANT语句来授予系统特权 也可以授予对象特权 在各种RDBMS包中 授予特权的基本语法都是相当一致的(尽管在高级选项上存在显著的差别) 在单个GRANT语句中可以授予多种特权 例如下面的例子
GRANT [ALL [PRIVILEGES]] | <privilege …>
[ON <object_name>]
TO <user> | <group> | <role>
[WITH GRANT OPTION]
授予系统级特权
系统特权允许用户在指定的RDBMS内执行一些管理任务(创建一个数据库 创建和删除用户 创建 修改和销毁数据库对象等) 要执行授予系统特权的操作 必须在RDBMS中具有足够高的职权级别 系统特权与对象特权相比 它们的作用域和允许用户执行的操作的类型不同 这是区分两者的一个特征
系统特权完全是特定于具体数据库的 每一个数据库厂商都实现了一个自己的系统特权集 对于不同的RDBMS 某些系统特权可能具有不同的含义 例如Microsoft SQL Server 它甚至没有定义系统特权 而是对所谓的安全对象(securable)使用特权(权限) 这些安全对象在不同的级别上可以是服务器 数据库和模式
这里有一些基于LIBRARY数据库的例子 下面的代码创建了一个用户LibraryUser 然后授予该用户在数据库中创建表的特权 并且允许传递给其他用户
CREATE USER LibraryUser
IDENTIFIED BY letmein;
GRANT CREATE TABLE
TO LibraryUser
WITH ADMIN OPTION;
假如你具有足够的特权 那么上面的代码将创建密码为LETMEIN的用户LibraryUser 但是如果NEW_USER用户还没有被授予CREATESESSION系统特权 那么使用该用户ID和密码将无法连接到Oracle 要访问数据库必须具有CREATESESSION系统特权 否则 将产生ORA :user LibraryUser lacks CREATESESSION privilege;logon denied错误
为了解决这一问题 需要将该特权授予新创建的用户
GRANT CREATE SESSION
TO LibraryUser
WITH ADMIN OPTION;
这样就可以使用LibraryUser/letmein凭据连接到数据库 由于使用了WITH ADMIN OPTION子句 因此也可以将该特权授予其他用户 某些RDBMS 特别是Oracle 将把该选项视为更通用的WITH GRANT OPTION子句
在Oracle数据库中还有另外两种系统特权值得一提 SYSDBA和SYSOPER 这两种系统特权的行为类似于包含了多个系统特权的角色 当连接到Oracle数据库时 可以声明用AS SYSDBA或者AS SYSOPER连接 但前提是这些特权已经授予了连接数据库的用户 SYSDBA是可以授予的最高特权之一
IBM DB 在这一方面类似于Oracle 它具有系统特权 其中一些特权与职权级别有关(更多信息请参考本章后面的内容) 在特权的层次结构中 SYSADM(系统管理员)职权位于最顶层 下一层包括DBADM(数据库管理员)和SYSCTRL(系统资源管理员) 然后是SYSMAINT(系统维护管理员) 在特权层次结构的最底层是数据库用户 要授予DBADM职权 用户必须具有SYSADM职权 SYSADM和DBADM两者都可以向用户或组授予其他特权
IBM DB 提供了其他办法来保护数据 即使是对于具有SYSADM职权的用户也是如此 这种机制称为基于标签的访问控制(label based accesscontrol LBAC) 可以用LBAC来保护整行 整列或者同时保护两者 Oracle也提供了类似的特性 称为Oracle Label Security
Microsoft SQL Server 并没有系统特权(至少没有类似于Oracle或IBM DB 所具有的那种系统特权) 对于特定的SQL语句 可以将特权授予一个用户(或者一个角色) 一旦授予了特权 用户就可以运行SQL语句以执行所定义的操作 SQL Server 已经定义了大量的安全对象 例如数据库服务器资源 登录名 数据库 角色 用户 模式等 可以将这些安全对象授予主体(principal) 例如用户 组 角色或应用程序角色 主体可以在下面这几个级别上进行定义 Windows操作系统级别(域登录名 本地登录名) SQL Server级别(SQL Server登录名)和数据库级别(数据库用户/角色和应用程序角色) 表 列出了可以授予主体的一些权限
表 精选的Microsoft SQL Server 权限
系统权限被绑定到数据库(MS SQL Server也使用这一概念 在Oracle中与之最接近的等价概念是模式) 并且是层次化的 例如 要GRANT特权以执行一个CREATE DATABASE语句 则用户必须在SQL Server的master数据库的上下文中 因为该语句产生的结果将影响到整个SQLServer 实例
返回目录 SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
cha138/Article/program/SQL/201311/16442相关参考
认股特权的作用根据以往的习惯做法,在新股票出售以前,股东有优先认购的权利。后来美国等国家通过的法律改变了这种优先认股权的性质,现在公司董事出售新股票可以通过以下两种方法:一种是发出优惠权,即认股特权;
Oracle数据库内部安全威胁:审计特权用户 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 普通
新《安全生产法》规定,可以通过保险费率浮动、引进()参与企业安全管理,可以有效促进企业加强安全生产工作。
新《安全生产法》规定,可以通过保险费率浮动、引进()参与企业安全管理,可以有效促进企业加强安全生产工作。A.安全管理公司B.安全咨询公司C.保险公司D.职业经理人【参考答案】C[拓展知识]特种作业人员
新《安全生产法》规定,可以通过保险费率浮动、引进()参与企业安全管理,可以有效促进企业加强安全生产工作。
新《安全生产法》规定,可以通过保险费率浮动、引进()参与企业安全管理,可以有效促进企业加强安全生产工作。A.安全管理公司B.安全咨询公司C.保险公司D.职业经理人【参考答案】C[拓展知识]特种作业人员
股票买卖特权的内容在要求购买股票的人数大大超过股票发行数量的情况下,发行公司往往借助认股证书来分配股票购买权。有时,股票买卖特权也被用来作为笼络公司的高级雇员的一种手段。公司给予公司的高级雇员以股票买
在Oracle系统中用户使用特权用户身份(INTERNAL/SYSDBA/SYSOPER)登录Oracle有两种身份验证方法 使用与操作系统集成的身份验证 使用Oracle数据库的密码文件进行
最先取得下列侵华特权的国家依次是_____①修筑铁路②领事裁判权③开设工厂④强占租借地A、英、法、美、日B、法、英、日、德C、俄、法、日、英D、俄、英、日、法答案:B解析:法国最先于I896年争得修筑
知识大全 有哪些软件和百度糯米,美团,大众点评一样有新用户专享特权
有哪些软件和百度糯米,美团,大众点评一样有新用户专享特权饿了么这个aap,我就知道这个,你可以下载看看,很不错的。新用户好像有减免优惠‘有什么软件和百度糯米大众点评美团一样新用户可以几块钱吃自助吗那些
依据《危险化学品安全管理条例》的规定,下列关于剧毒化学品运输管理的说法,正确的是()。
电力安全生产知识竞赛题:依据《危险化学品安全管理条例》的规定,下列关于剧毒化学品运输管理的说法,正确的是()。A、可以通过内河封闭水域运输剧毒化学品B、禁止通过内河运输剧毒化学品C、安全监管部门负责审
依据《危险化学品安全管理条例》的规定,下列关于剧毒化学品运输管理的说法正确的是()。
电力安全生产知识竞赛题:依据《危险化学品安全管理条例》的规定,下列关于剧毒化学品运输管理的说法正确的是()。A、可以通过内河封闭水域运输剧毒化学品B、禁止通过内河运输剧毒化学品C、安全监管部门负责审批