《用户管理和安全》PPT课件.ppt

上传人:tian****1990 文档编号:7800511 上传时间:2020-03-24 格式:PPT 页数:45 大小:775.55KB
返回 下载 相关 举报
《用户管理和安全》PPT课件.ppt_第1页
第1页 / 共45页
《用户管理和安全》PPT课件.ppt_第2页
第2页 / 共45页
《用户管理和安全》PPT课件.ppt_第3页
第3页 / 共45页
点击查看更多>>
资源描述
第十二章管理安全性 用户与权限管理 引言 数据库安全性问题一直是人们关注的焦点 数据库数据的丢失以及数据库被非法用户的侵入对于任何一个应用系统来说都是至关重要的问题 确保信息安全的重要基础在于数据库的安全性能 安全性 Oracle数据库作为大型分布式数据库 其安全性一直是设计的重要目标 作为Oracle安全模型基础的安全原理是基于最小特权的原则 此原则认为用户只应该具有完成其任务所必需的特权 而不应该拥有更多的特权 oracle数据库的安全性可以分为如下两类 系统安全性数据安全性 1 系统安全性系统安全性是指在系统级控制数据库的存取和使用的机制 包含 有效的用户名 口令的组合 一个用户是否授权可连接数据库 用户对象可用的磁盘空间的数量 用户可执行哪些系统操作 2 数据安全性数据安全性是指在实体级控制数据库存取和使用的机制 包括 用户可以存取的方案对象和在该方案对象上可以进行哪些操作等 Oracle利用下列机制管理数据库安全性 数据库用户和模式 权限 角色 存储设置和空间份额 用户与模式在Oracle中 数据库用户和模式是安全的最基本的单元 术语 用户 和 模式 经常互换使用 然而它们是有区别的 数据库模式定义为数据库对象的集合 模式的名称就是拥有或控制这些数据库对象集合的用户名称 所有的数据库对象 包括表 视图 索引 触发器 Java存储过程 PL SQL程序包 函数等 都归Oracle数据库中的某一个用户所有 甚至Oracle的数据字典 系统目录也是名称为sys的模式的一部分 在Oracle数据库中 可以存在没有拥有任何数据库对象的用户 不是模式 但是不会没有命名的模式或数据库对象集合 12 1用户管理 Oracle管理主要用户用户就是一个方案 它是一组数据库对象的所有者 用户是计算机的合法操作者 数据库用户就是数据库的合法操作者 Oracle有如下的几个主要用户 SYS SYSTEM SCOTT 这些用户以及口令和说明如表12 1所示 表12 1Oracle的主要用户 用户的创建 1 创建用户使用SQL语句创建新数据库用户的语法格式如下 CREATEUSER用户名IDENTIFIEDBY口令 DEFAULTTABLESPACE默认表空间 TEMPORARYTABLESPACE临时表空间 QUOTA 数值K M UMLIMITED ON表空间名 PROFILE概要文件名 PASSWORDEXPIRE ACCOUNTLOCK ACCOUNTUNLOCK 例 CREATEUSERlotusIDENTIFIEDBYl123DEFAULTTABLESPACEusersQUOTA100MONusersACCOUNTUNLOCK 用户帐号状态 用户的帐号有两种状态 DBA可以通过设置状态的方法使账户可用或不可用 一 帐号锁定锁定帐号可以使某个帐号不可用 二 账户解锁该状态下 帐号可以正常登陆 2 修改用户帐号 修改用户账号的语法格式如下所示 ALTERUSER用户名IDENTIFIEDBY口令 DEFAULTTABLESPACE默认表空间 TEMPORARYTABLESPACE临时表空间 QUOTA 数值K M UNLIMITED ON表空间名 PROFILE概要文件名 PASSWORDEXPIRE ACCOUNTLOCK ACCOUNTUNLOCK 作为一个DBA 在管理数据库时 用户可能会有各种原因来改变用户帐户 这些有关帐户管理的工作如下 重置密码 锁定帐户和解除帐户锁定 修改用户的默认表空间或临时表空间 修改表空间配额 例 锁定用户ALTERUSERlotusACCOUNTLOCK 解除锁定ALTERUSERlotusACCOUNTUNLOCK 修改用户密码ALTERUSERlotusIDENTIFIEDBYlotus 3 删除用户 使用DROPUSER命令可以从数据库中删除一个用户 参数为CASCADE 表示在删除用户之前 先删除其所拥有的所有实体 例 Createtablelotus aa aanumber Dropuserlotus Dropuserlotuscascade 12 2权限管理 权限 privilege 是Oracle数据库定义好的执行某些操作的能力 在Oracle数据库中是利用权限进行管理的 这些权限可以分成两类 系统权限 是指在系统级控制数据库的存取和使用的机制 Oracle有100多种不同的系统权限 表12 2给出了常用的系统权限 每一种系统权限允许用户执行一种特殊的数据库操作或一类数据库操作 表12 2常用的系统权限 对象权限 是在数据库对象 如 指定的表 视图 序列 过程 函数或包 上执行特殊动作的权利 对于不同类型的对象 有不同类型的对象权限 如表12 3所示 表12 3常用的对象权限 授予权限 1 授予系统权限授权语句如下 GRANT system privilege role system privilege role TO user role PUBLIC user role PUBLIC WITHADMINOPTION 其中 1 system privilege 要授予的系统权限 2 role 被授权的角色名字 3 PUBLIC 把系统权限授予所有用户 4 WITHADMINOPTION 可以把被授予的权限再进一步授予其他用户或角色 例 GRANTcreatesessionTOtestWITHADMINOPTION GRANTcreatetableTOtest 将createview权限授予数据库中所有用户GRANTcreateviewTOpublic 2 授对象权限语句如下 GRANT object privilege column list object privilege column list ALL PRIVILEGES ON schema objectTO user role PUBLIC user role PUBLIC WITHGRANTOPTION 其中 1 object privilege 要授予的对象权限 2 column list 表或者视图的列名 只有授权INSERT REFERENCES UPDATE的时候才使用 3 ALL 授予对象的所有权限 并且有WITHGRANTOPTION权限 4 ONobject 对象名字 5 WITHGRANTOPTION 可以把对象权限授予其他的用户或者角色 例 GRANTSELECT UPDATEONempTOtestWITHGRANTOPTION GRANTALLONDEPTTOTEST 3 取消权限 使用REVOKE语句可以回收己经授予用户 或角色 的系统权限 对象权限与角色 执行回收权限操作的用户同时必须具有授予相同权限的能力 例 取消用户test的CREATETABLE权限 REVOKECREATETABLEFROMtest 说明 取消其他用户的权限时必须拥有系统管理员DBA权限 例 回收已经授予用户test的emp表上的SELECT和UPDATE对象权限 REVOKESELECT UPDATEONEMPFROMtest 角色管理 在许多情况下 用户的工作往往都是分类的 因此就可以将用户分为不同的种类 每一种用户的权限都是相同的 即扮演了相同的角色 因此Oracle借用了角色这种概念来实现这种权限管理的方法 达到简化权限管理的目的 角色就是一组相关权限的集合 是对权限进行集中管理 授予 回收 的一种方法 即将不同权限集中在一起就形成了角色 使用角色可以大大降低用户权限的维护负担 数据库管理员只需创建特定的数据库角色 使其反映组织或应用的安全权限 就可以将这些角色赋予用户 实际是把角色所拥有的权限分配给用户 不使用角色分配权限 权限 用户 Manager 使用角色分配权限 ORACEL利用角色更容易地进行权限管理 有下列优点 1 减少权限管理 不要显式地将同一权限组授权给几个用户 只需将这权限组授给角色 然后将角色授权给每一用户 2 动态权限管理 如果一组权限需要改变 只需修改角色的权限 所有授给该角色的全部用户的安全域将自动地反映对角色所作的修改 3 权限的选择可用性 授权给用户的角色可选择地使其可用或不可用 4 应用安全性 角色使用可由口令保护 应用可提供正确的口令使用角色 如不知其口令 不能使用角色 预定义角色 在创建数据库时 Oracle数据库会自动创建一些常用的角色 即预定义角色 这些角色已经由Oracle数据库授予了相应的系统权限 DBA可以直接将这些预定义的角色授予用户 完成简单的权限管理工作 下面是比较传统的三个预定义角色 CONNECT授予最终用户的典型权利 最基本的RESOURCE授予开发人员的权限CREATETRIGGERCREATESEQUENCECREATETYPECREATEPROCEDURECREATECLUSTERCREATEOPERATORCREATEINDEXTYPECREATETABLE DBA拥有系统的所有系统级权限 对于数据库管理员应该授予DBA角色 对于数据库开发用户 只需要授予CONNECT和RESOURCE两个角色 可以通过数据字典DBA SYS PRIVS查询所有预定义角色的系统权限 创建自定义角色 Oracle允许用户按实际需要自定义各种角色 以便将其授予不同类型的用户 增强权限管理的灵活性和方便性 创建角色的语句格式如下 CREATEROLE角色名 IDENTIFIEDBYpassword 其中任性的IDENTIFIEDBYpassword要求用户在启用这个角色之前先确认自己的身份 该角色在默认情况下被关闭 为了打开此角色需要使用如下语句 SETROLErole nameIDENTIFIEDBYpassword 例 CREATEROLEaccount role 注意 新创建的角色并不具有任何权限 这时的角色是没有什么用处的 因此 创建角色之后 通常要立即给它授予系统权限或对象权限 将权限授予角色Grantconnecttoaccount role Grantcreatetabletoaccount role Grantselectonscott emptoaccount role 将角色授予用户Grantresourcetotest Grantaccount roletoora test1 回收角色中的某一权限Revokecreatetablefromaccount role 回收用户的某一角色Revokeaccount rolefromora test1 角色删除 由于角色可以重复修改和设置 随着角色的增多 需要删除一些不必要的角色 删除角色可以通过DROP语句来实现 使这个角色的权限集合无效 拥有此角色的用户都不能使用这些权限 例 Droproleaccount role 获取角色有关的信息 从如下的数据字典中获取有关角色的信息 DBA ROLES 数据库中所有的角色 DBA SYS PRIVS 拥有系统权限的用户和角色 ROLE SYS PRIVS 拥有系统权限的角色 ROLE TAB PRIVS 拥有对象权限的角色USER ROLE PRIVS用户拥有的角色 PL SQL与角色 默认情况下 PL SQL函数 过程 程序包都要使用 定义者 的命名空间和权限执行 需要注意的是 这些已编译的 PL SQL程序 对象要使用直接赋予设计用户的权限执行 而不使用用户通过数据库角色得到的对象权限来执行 当然 这将使让作为特定数据库用户在SQL Plus中测试特定DML语句的开发人员混淆 他们将发现PL SQL过程中的相同语句不能够编译 大多数情况下 造成这种问题的原因是由于对象权限是通过角色授予 而不是直接授予设计用户的 PL SQL与角色 通常情况下 应用开发的安全方法是不直接将表和视图上的权限赋予数据库用户 只能够通过PL SQL过程 函数或程序包访问附属的表和视图 而执行这些已编译对象的权限要通过数据库角色提供 这种方式的最大优点是 除了通过公开的方法之外 终端用户不能直接操作应用程序中的表和视图 如果将安全直接绑定到用户应用中 而不是数据库中 就意味着安全实现只能够适用于用户应用 然而 如果用户只能够提供通过PL SQL过程 函数和程序包修改用户应用的表和视图的能力 那么就要为访问Oracle数据库的所有应用维护数据库对象的安全 小结 用户管理权限的基本作用系统权限 withadminoption 对象权限 withgrantoption 角色 withadminoption PL SQL与角色 上机练习 1 创建一个用户账号test 密码为test 默认的表空间为users 默认的临时表空间为temp 在users上的限额为100M 2 将用户账号test锁定 然后再进行解锁 3 修改用户账号test的密码为aaa 4 将系统权限createsession createtable授予test 然后回收test的createtable权限 5 将scott方案下的emp表上的insert update delete对象权限授予test 然后回收test的emp表上的delete对象权限 6 将connect resource角色授予test 然后回收test的resource角色 7 自定义角色role test 使其具有角色connect和createview的系统权限 然后将此角色授予test 最后回收test的role test角色 8 删除自定义角色role test 9 删除用户账号test
展开阅读全文
相关资源
相关搜索

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


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

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


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