零点起飞学Oracle之用户、角色与权限控制.pptx

上传人:zhu****ei 文档编号:5429542 上传时间:2020-01-29 格式:PPTX 页数:25 大小:309.32KB
返回 下载 相关 举报
零点起飞学Oracle之用户、角色与权限控制.pptx_第1页
第1页 / 共25页
零点起飞学Oracle之用户、角色与权限控制.pptx_第2页
第2页 / 共25页
零点起飞学Oracle之用户、角色与权限控制.pptx_第3页
第3页 / 共25页
点击查看更多>>
资源描述
第15章用户 角色与权限控制 在数据库中 数据库的一个重要特性就是安全性 安全性是指保护数据库 以防止不合法的使用所造成的数据泄露 修改和删除 只有使用了合法的用户登录之后 才可以对数据库进行各种操作 这就要求数据库对用户的权限进行控制 本章主要讲解用户及用户的创建 权限及权限的分配 角色及角色的使用 15 1用户 Oracle用户是指可以访问数据库对象的账号 它由管理员管理 每个连接到数据库的用户必须是系统的合法用户 Oracle用户分为两类 系统用户即具有系统管理权限的用户 普通用户 Oracle数据库在创建时 会提供若干默认用户 如系统用户system 系统用户可以在登录数据库后创建其他用户 本节主要讲述Oracle用户的概况 以及讲解如何创建普通用户 15 1 1查看Oracle用户信息 Oracle数据库有自带的用户 通过视图dba users可以查询用户的详细信息 我们搜寻视图内容来查看Oracle中的用户概况 15 1 2创建新的用户 Oracle用户是用连接数据库和访问数据库对象的 在开发过程中 除了系统用户外 我们希望单独创建新的用户来管理项目 当利用system用户登录Oracle数据库后 就可以创建用户了 创建新用户的语法如下所示 createuser用户名identifiedby密码defaulttablespace名称空间其中 createuser命令用户创建新的用户 并指定用户名 identifiedby选项是必需的 用于指定新用户的密码 defaulttablespace用于指定新建用户的默认表空间 新用户登录之后 所有操作均默认在该名称空间进行 数据库创建伊始 可以利用系统用户登录 并创建普通用户 15 1 3使用模式 模式 Schema 是数据库对象的集合 模式是用来创建管理对象的 Schema里面包含了各种对象如表 索引 视图 存储过程等 一个用户一般对应一个Schema 该用户的Schema名等于用户名 并作为该用户缺省Schema 我们可以通过视图dba objects来查看一个对象的拥有者 15 1 4系统用户system与sys 在Oracle数据库数据库中 初始状态下 存在的系统默认用户包括sys和system 用户sys是最高权限者 拥有数据字典 可以启动 修改 关闭数据库 system用户是默认的系统管理员 可以创建 删除用户 但不能启动和关闭用户 权限仅次于sys用户 我们在15 1 1节中提到 一个用户的状态有可能是EXPIRED LOCKED 即被锁定的 15 2管理权限 如果用户要访问数据库 那么需要为该用户分配对应的权限 为了保证数据库的安全性 就要控制好用户的权限 Oracle数据库中的权限包括系统权限和对象权限 15 2 1管理系统权限 Oracle数据库中 对数据库系统级的操作都可以成称为系统权限 这些权限不指向具体对象 而是针对某种操作而言 例如 创建表的权限 当表未创建时 自然无从谈针对特定表的权限 1 获得系统权限信息视图dba sys privs描述了各种系统权限及权限分配情况 我们可以通过指定用户名来查看该用户所具有的系统权限 15 2 1管理系统权限 2 分配系统权限 示例15 1 对于一个新建用户 是不具有任何权限的 以新用户test2012为例 在视图dba sys privs中搜寻其权限信息 1 利用用户test2012登录数据库 Oracle将抛出错误 2 为用户分配权限应该使用命令grant 其语法形式如下所示 grantprivilegetograntee其中grant用于分配权限 privilege为权限名称 tograntee用于指定权限分配的对象 一般为用户或者角色 在这里 我们暂时讨论用户 将createsession的权限分配给用户test2012 15 2 1管理系统权限 3 用户test2012一旦具有了createsession权限 将可以成功登录数据库 4 虽然已经成功登录数据库 但是用户test2012几乎不能做任何事情 5 我们必须为该用户分配创建表的权限 6 利用用户test2012 再次尝试创建表student2012 此时 用户test2012将可成功创建新表 9 而利用system用户可以查看用户test2012此时的系统权限信息 15 2 1管理系统权限 3 adminoption选项对于系统权限 在分配时还可以指定adminoption选项 adminoption表示当前被授权的用户还可以给其他用户进行系统权限的授予 如对于用户test2012 其createsession和createtable的权限是由system用户分配 在分配时 并未指定adminoption选项 所以 用户test2012是无法将自身的createsession和createtable权限传播给其他用户的 示例15 2 新建用户test user 并利用已有用户test2012为其分配权限 15 2 1管理系统权限 4 收回用户的系统权限权限不仅可以授予 也允许收回 为一个用户赋予过多的权限是不安全的 根据实际业务需求 可以对其进行权限收回 权限收回时 可以利用revoke命令 其语法形式如下所示 revokeprivilegefromgranteerevoke命令用户收回权限 privilege为权限名称 fromgrantee指定从哪个用户或角色收回权限 示例15 3 可以利用revoke命令收回用户test2012的权限 15 2 2管理对象权限 对象权限是较低一级的权限 对象权限即将指定的对象授予一个用户 因此在特定的表上执行操作 在Oracle数据库 对表对象 序列 视图 存储过程 触发器等的操作的权限称为对象权限 具体权限主要包括以下几种 15 2 2管理对象权限 select 可用于查询表 视图和序列 insert 向表或视图中插入新的记录update 更新表中数据delete 删除表中数据execute 函数 存储过程 程序包等的调用或执行index 为表创建索引references 为表创建外键alter 修改表或者序列的属性 示例15 4 在所有对象权限中 最常用的是针对数据表的权限 查看一个用户针对某个数据表的权限 可以通过视图user tab privs或者dba tab privs 15 2 2管理对象权限 1 分配权限授予对象权限与授予系统权限的语法相似 为用户分配对象权限也应该使用grant命令 其语法形式如下所示 grant权限on对象to用户可以看出 为用户分配对象权限增加了一个选项on 该选项用于指定权限所对应的对象 15 2 2管理对象权限 以下步骤演示了分配对象权限的整个过程 1 利用系统用户system恢复用户test2012最基本的系统权限createsession 2 利用用户test2012登录数据库 并尝试查询表system employeenew的数据 3 利用system用户登录数据库 并分配表employeenew的select权限给用户test2012 并从视图dba tab privs中查看用户test2012的对象权限 4 再次利用用户test2012查询表system employeenew 5 利用grant命令同样可以为用户分配表的update insert权限 15 2 2管理对象权限 2 分配所有权限 示例15 5 假设表system employeenew对用户test2012是完全开放的 也就是说 用户test2012具有该表上的所有权限 那么用户system进行权限分配的工作可以使用all关键字 以便直接将所有权限一次性分配给用户test2012 15 2 2管理对象权限 3 withgrantoption 示例15 6 在分配系统权限时 我们可以利用withadminoption选项给其他用户进行系统授权 同样 对于对象权限 可以利用withgrantoption选项来实现这一功能 1 利用用户test user登录数据库 并尝试搜寻表system employeenew的数据 2 尝试利用用户test2012为用户test user分配表system employeenew的select权限 3 利用用户system为test2012重新分配select权限 并添加withgrantoption选项 4 再次尝试利用用户test2012为用户test user分配表system employeenew的select权限 5 最终 用户test user可以成功搜寻表system employeenew中的数据 15 2 2管理对象权限 3 收回权限利用revoke命令可收回用户的对象权限 其语法形式如下所示 revoke对象权限on对象from用户对象的拥有者可以收回其他用户的对象权限 以收回用户test2012针对表system employeenew的update和insert权限为例 15 3使用角色 角色是权限的集合体 可以赋予用户 一旦赋予用户某个角色 那么该角色的所有权限也一并赋予了用户 这是一种简便地易于管理的为用户赋予权限的方式 在Oracle数据库中 一个用户允许拥有多个角色 而一个角色也允许被赋予多个用户 15 3 1利用角色进行权限分配 在Oracle数据库中 支持自定义角色 创建角色使用createrole命令 角色创建之后 会以对象的形式的存储在数据库中 并可以在数据字典中获得其信息 示例15 7 在15 2节 我们使用了grant命令将多个权限分别赋予了用户test2012和test user 现假设用户test2012和test user都应该具有表system employeenew的select update insert和delete权限 那么 可以首先创建一个角色 并将以上权限赋予该角色 以下步骤演示了如何创建和使用角色 1 创建并查看角色信息 2 利用用户system为角色分配权限 3 利用角色为用户分配权限 15 3 2角色的传递 角色可以授予给另外的角色 可以通过grant命令来实现 例如 角色role employeenew已经具备了表system employeenew增删改查的权限 现希望创建一个新的角色role new 该角色具有表system employeesnew删改查权限之外 还希望拥有创建会话 createsession 和创建表 createtable 的权限 那么 可以利用已有角色role employeenew来实现新角色 我们可以在视图dba sys privs获得角色role new的系统权限信息 但却无法从视图dba tab privs中获得其实际拥有的对象权限 15 3 3管理角色 对于角色本身的修改可以使用alter关键字来完成 而对于角色所带的权限修改 则需要使用grant关键字来修改 当用户登录数据库时 会话会自动加载当前用户的角色信息 可以通过视图session roles来查看用户所具有的角色信息 15 3 4内置角色 角色是一组权限的集合 并非所有角色都需要用户手动创建 Oracle内置角色便于我们进行简单的管理 其中最常见的为DBA CONNECT和RESOURCE 其中 DBA是数据库管理员角色 我们利用该角色可以对数据库进行所有操作 示例15 8 内置角色在创建数据库伊始就已经存在 因此重点关注其系统权限 15 4本章小结 本章主要讲解了Oracle数据库的权限管理 安全管理涉及多个方面 如用户 权限 角色 用户可以拥有角色和权限 而角色则可以拥有权限或者其他角色 本章重点是用户 权限和角色的创建及使用 本章难点是并掌握如何在Oracle数据库进行权限控制
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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