




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1页 第13章安全性管理 本章概述本章的学习目标主要内容 第2页 本章概述 安全性是衡量数据库产品性能的重要指标 本章介绍Oracle11g数据库的安全管理机制 内容包括用户管理 权限管理 角色管理 数据库审计等 第3页 本章的学习目标 了解用户 权限 角色的概念及作用 学会创建 修改 删除用户 学会将系统权限和对象权限授予用户 以及回收权限 学会使用系统预定义角色 学会创建自定义角色 以及角色权限的授予和回收 了解数据库审计的概念及作用 第4页 主要内容 13 1概述13 2用户管理13 3权限管理13 4角色管理13 5数据库审计13 6小结13 7习题 第5页 安全性在数据库管理中占据重要的位置 没有完善的安全机制的保护 可能会导致数据的泄露 损坏或丢失 因此安全性一直是数据库产品性能的重要衡量指标之一 Oracle数据库的安全管理是从用户登录数据库就开始的 数据库访问的安全性主要包括两个方面的含义 一是阻止未授权用户访问数据库 二是每个数据库用户都有不同的操作权限 用户在数据库中的操作将被限制在其权限范围内 在Oracle数据库中 用户的身份通常被划分为数据库管理员和开发人员 其中数据库管理员承担管理数据库的责任 包括安全性管理 调优 备份策略的制定 数据库出现故障时的数据恢复 保证数据库的可用性等 软件系统的开发人员作为数据库管理员之外的一类使用者 承担软件开发的职责 对数据库的访问要求及技能掌握要求比数据库管理员低 他们需要熟练掌握的SQL及PL SQL的操作技能 能够快速及高效率地完成对数据库的操作需求 对调优和备份恢复等操作通常不参与 所以 数据库的安全管理通常属于数据库管理员的职责 DBA可以通过管理用户 角色以及权限来控制数据库的安全 但对于软件开发人员来说 掌握一些安全机制及处理方式也是有必要的 第6页 主要内容 13 1概述13 2用户管理13 3权限管理13 4角色管理13 5数据库审计13 6小结13 7习题 第7页 13 2用户管理 用户是数据库的使用者和管理者 用户管理是Oracle数据库安全管理的核心和基础 每个连接到数据库的用户都必须是系统的合法用户 用户要想使用Oracle的系统资源 查询数据 创建表等 就必须要拥有相应的权限 Oracle数据库的用户管理包括创建用户 修改用户的安全参数 删除用户和查询用户信息等 第8页 13 2 1初始用户在创建Oracle数据库时会自动创建一些用户 例如SYS SYSTEM SCOTT等 除了SYS SYSTEM这两个初始合法的管理员 其余用户在创建后处于锁定状态 需要在安装时或者安装后对其解锁并重新设定口令 这些初始用户有其自身的职责和特点 软件项目一般不建议使用这些初始用户 即针对不同的项目 应该由管理员分配不同的用户 在开发过程中 SCOTT用户可以用来测试数据库的可用性 lSYS 是数据库中具有最高权限的数据库管理员 可以启动 修改和关闭数据库 拥有数据字典 lSYSTEM 是辅助数据库管理员 不能启动和关闭数据库 可以进行一些其他的管理工作 例如创建用户 删除用户等 lSCOTT 数据库的测试用户 默认口令为tiger 在该用户下已经创建了一些数据表 用于用户学习及测试网络连接 包括 EMP表 DEPT表等 第9页 13 2 2相关属性 和用户相关的属性包括以下几种 1 用户身份认证方式在用户连接数据库时 必须经过身份认证 Oracle数据库用户有3种身份认证 数据库身份认证 这种方式即用户名 口令方式 用户口令以加密方式保存在数据库内部 用户连接数据库时必须输入用户名和口令 通过数据库认证后才能登录数据库 这是默认的认证方式 外部身份认证 用户账户由Oracle数据库管理 但口令管理和身份验证由外部服务完成 外部服务可以是操作系统或网络服务 当用户试图建立与数据库的连接时 数据库不会要求用户输入用户名和口令 而从外部服务中获取当前用户的登录信息 这种方式比较适合在局域网环境下 连接简单 不需要提供用户名和口令 但是需要在创建用户时做一些相应的配置 第10页 全局身份认证 当用户试图建立与数据库的连接时 Oracle使用网络中的安全管理服务器 OracleEnterpriseSecurityManager 对用户进行身份认证 和外部身份认证相同 用户账户由数据库管理 但Oracle不保存口令 当用户登录时 需要通过网络服务验证 Oracle的安全管理服务器可以提供全局范围内管理数据库用户的功能 2 表空间配额表空间配额限制用户在永久表空间中可用的存储空间大小 默认情况下 新用户在任何表空间中都没有任何配额 用户在临时表空间中不需要配额 3 默认表空间用户在创建数据库对象时 如果没有显示指明该对象在哪个空间 那么系统会将该对象自动存储在用户的默认表空间中 即SYSTEM表空间 一般不建议将用户的对象建立在SYSTEM表空间中 所以默认表空间应指定 第11页 4 临时表空间如果用户执行一些操作例如排序 汇总和表间连接等 系统会首先使用内存中的排序区SORT AREA SIZE 如果这块排序区大小不够 则将使用用户的临时表空间 一般使用系统默认临时表空间TEMP作为用户的默认临时表空间 5 账户状态在创建用户时 可以设定用户的初始状态 包括用户口令是否过期 用户账户是否锁定等 已锁定的用户不能访问数据库 必须由管理员进行解锁后才允许访问 数据库管理员可以随时锁定账户或解除锁定 6 资源配置每个用户都有一个资源配置 如果创建用户时没有指定 Oracle会为用户指定默认的资源配置 资源配置的作用是对数据库系统资源的使用加以限制 这些资源包括 口令是否过期 口令输入错误几次后锁定该用户 CPU时间 输入 输出 I O 以及用户打开的会话数目等 第12页 13 2 3创建用户创建数据库用户的语法如下 CREATEUSERuserIDENTIFIED BYpasswore EXTERNALLY DEFAULTTABLESPACEtablespace TEMPORARYTABLESPACEtablespace QUOTA integer K M UNLIMITED ONtablespace QUOTA integer K M UNLIMITED ONtablespace PASSWORDEXPIRE ACCOUNT LOCK UNLOCK PROFILE profile DEFAULT 第13页 参数说明 user 要创建的用户名 BYpassword 用户通过数据库验证方式登录 登录时需要提供的口令 EXTERNALLY 用户需要通过操作系统验证 DEFAULT或TEMPORARYTABLESPACE 为用户指定默认或临时表空间 QUOTA 定义在表空间中允许用户使用的最大空间 可将限额定义为整数字节或千字节 兆字节 其中关键字UNLIMITED用户指定用户可以使用表空间中全部可用空间 PASSWORDEXPIRE 强制用户在使用SQL Plus登录到数据库时重置口令 该选项仅在用户通过数据库进行验证时有效 ACCOUNTLOCK UNLOCK 可用于显示锁定或解除锁定用户账户 UNLOCK为缺省设置 PROFILE 指定用户的资源配置 第14页 例13 1 创建用户rose 口令为zzuli 默认表空间为USERS 在该表空间的配额为50MB 口令设置为过期状态 即首次连接数据库时需要修改口令 如果在SQLPlus中创建用户成功 最后会显示个用户已创建 之类的 最好写在例题下面 表示这是运行成功的代码 你实验一下 看看创建完结果是什么 写到下面 后面的例题都是这样的吧 SQL CREATEUSERroseIDENTIFIEDBYzzuli2DEFAULTTABLESPACEUSERS3QUOTA50MONUSERS4PASSWORDEXPIRE 用户已创建 第15页 13 2 4修改用户 用户创建后 可以更改用户的属性 如口令 默认表空间 临时表空间 表空间配额 概要文件和用户状态等 但不允许修改用户的名称 除非将其删除 修改数据库用户使用ALTERUSER语句来实现 ALTERUSER语句的语法格式为 ALTERUSERuser name IDENTIFIED BYPASSWORD EXTERNALLY GOLBALLYAS external name DEFAULTTABLESPACEtablespace name TEMPORARYTABLESPACEtemp tempspace name QUOTAnK M UNLIMITEDONtablespace name PROFILEprofile name DEFAULTROLErole list ALL EXCEPTrole list NONE PASSWORDEXPIRE ACCOUNTLOCK UNLOCK 第16页 对其中的参数说明如下 lrole list 角色列表lALL 表示所有角色lEXCEPTrole list 表示除了role list列表中角色以外的其他角色 lNONE 表示没有默认角色 例13 2 修改用户atea的默认表空间为USERS 在该表空间的配额为100MB 在USERS表空间的配额为30MB 命令如下 SQL ALTERUSERatea2DEFAULTTABLESPACEUSERS3QUOTA30MONUSERS 第17页 13 2 5删除用户 当一个用户不再使用时 可以将其删除 删除用户的语法 DROPUSERuser name CASCADE 执行该语句的用户必须具有DROPUSER的系统权限 删除用户时需要注意如下几点 1 如果用户方案中包括任何对象 在删除用户时 必须加上CASCADE短语 Oracle数据库会先删除该用户的所有对象 然后再删除该用户 2 如果用户当前正与Oracle服务器连接 则不能删除 例13 3 删除用户atea SQL DROPUSERatea 如果atea用户的方案中没有对象SQL DROPUSERateaCASCADE 如果atea用户的方案中有对象 第18页 13 2 6查询用户信息 如果要获取用户信息 可以通过查询数据字典视图或动态性能视图来实现 ALL USERS 包含数据库所有用户的用户名 用户ID和用户创建时间 DBA USERS 包含数据库所有用户的详细信息 USER USERS 包含当前用户的详细信息 DBA TS QUOTAS 包含所有用户的表空间配额信息 USER TS QUOTAS 包含当前用户的表空间配额信息 V SESSION 包含用户会话信息 V OPEN CURSOR 包含用户执行的SQL语句信息 例13 4 查找所有用户的默认表空间 查找的结果应该截图 显示在下面 SQL SELECTuser name default tablespace2FROMdba users 第19页 主要内容 13 1概述13 2用户管理13 3权限管理13 4角色管理13 5数据库审计13 6小结13 7习题 第20页 在用户创建完成后 仅仅表示该用户在Oracle系统中进行了注册而已 这样的用户既不能连接到数据库 更谈不上进行查询 建表等操作 要使该用户能够连接到Oracle系统并能使用Oracle的资源 如查询表的数据 创建自己的表结构等 必须由具有DBA角色的用户对该用户进行授权 第21页 13 3 1权限概述 权限是指执行特定类型的SQL语句或访问另一个用户的对象的权利 例如 连接到数据库 创建表 查询其他用户的表 调用其他用户的存储过程等 Oracle数据库使用权限来控制用户对数据的访问和用户所能执行的操作 用户在数据库中可以执行什么样的操作 以及可以对哪些对象进行操作 完全取决于该用户所拥有的权限 根据系统管理方式的不同 在Oracle数据库中将权限分为两大类 系统权限和对象权限 系统权限指数据库级别执行某些操作的权限 即用户执行某一特定的数据库操作或某类数据库操作等的权限 例如创建表空间 创建会话等 第22页 对象权限是指对数据库中的特定对象 例如表 视图 序列 过程 函数或程序包 的访问控制 以及用户可以在这些数据库对象上执行哪些操作 例如插入表记录 增加约束条件等 无论系统权限还是对象权限 在Oracle数据库中 将权限授予用户的方式有直接授权和间接授权两种 所谓直接授权就是利用GRANT命令直接为用户授权 间接授权就是先将权限授予角色 再将角色授予用户 另外 已经获得某种权限的用户可以将他们的权限或其中一部分权限再授予其他用户 第23页 13 3 2系统权限管理 在Orcale11g中含有200多种系统权限 每种系统权限都为用户提供了执行某一种或某一类数据库操作的能力 可以将系统权限授予用户和角色 由于系统权限可能影响到整个数据库 所有授予系统权限给用户时需要慎重 1 授予系统权限系统管理员给用户授权时 应该考虑到不同用户的身份 例如数据库管理员用户应该具有创建用户 修改用户权限 创建表空间以及可以对数据库任何模式中的对象进行管理的权限 而数据库开发人员应该具有在自己的方案中创建表 视图 过程等的权限 另外一些普通用户应该只赋予CREATESESSION的权限 第24页 授予系统权限的语法 GRANT system privilege role system privilege role TO user role PUBLIC user role PUBLIC WITHADMINOPTION 参数说明 lsystem privilege 要授予的系统权限luser 被授予权限的用户lrole 被授予的角色名lPUBLIC 将系统权限授予所有用户lWITHADMINOPTION 允许被授予者进一步为其他用户或角色授予权限或角色 当授权时带有这个子句时 用户才可以将获得的系统权限再授予其他用户 即系统权限的传递性 第25页 例13 5 数据库管理员授予CREATESESSION权限给用户atea SQL GRANTCREATESESSIONTOatea 2 系统权限收回一般用户被授予过高的权限可能会给Oracle系统带来安全隐患 作为Oracle系统管理员 应该会查询当前Oracle系统中各个用户的权限 并且能够使用REVOKE命令撤销用户的某些不必要的系统权限 可以使用REVOKE语句撤销系统权限 REVOKE system privilege role system privilege role FROM user role PUBLIC user role PUBLIC REVOKE语句中的参数和GRANT语句中相同 第26页 例13 6 收回用户atea的CREATESESSION权限SQL REVOKECREATESESSIONFROMatea 需要说明的是 如果数据库管理员使用了GRANT语句给用户A授予系统权限时带有WITHADMINOPTION选项 则该用户A有权将系统权限再次授予其他的用户B 在这种情况下 如果数据库管理员使用REVOKE命令撤销A用户的系统权限时 用户B的系统授权仍然有效 13 3 3对象权限管理 对象权限是一种对于特定对象 表 视图 序列 过程 函数或程序包等 执行特定操作的一种权限 数据库用户拥有对自己的对象的所有对象权限 所以对象权限的管理实际上即是对象所有者对其他用户操作该对象的权限管理 第27页 1 授予对象权限授予对象权限的语法 GRANT object privilege column list object privilege column list ALL PRIVILEGES ON schema objectTO user role PUBLIC user role PUBLIC WITHGRANTOPTION 其中参数说明如下 lobject privilege 表示要授予的对象权限 lcolumn list 指定表或视图列 lALL 将所有权限授予那些已被授予WITHGRANTOPTION的对象 lONobject object表示将要被授予权限的目标对象 lRole 角色名 lUser 被授予的用户名 lWITHGRANTOPTION 表示被授予者可再将对象权限授予其他用户 第28页 例13 7 将SELECT INSERT DELETE授权给atea用户 SQL GRANTSELECT INSERT DELETEONempTOatea 2 对象权限回收要从用户或者角色中撤销对象权限 仍然要使用REVOKE命令来完成 要撤销对象权限 撤销者必须是将被撤销的对象权限的原始授予者 撤销对象权限的语法 REVOKE object privilege object privilege ALL PRIVILEGES ON schema objectFROM user role PUBLIC user role PUBLIC CASCADECONSTRAINTS 第29页 其中参数说明如下 lobject privilege 指定将撤销的对象权限 lALL 撤销已授予用户的所有对象权限 lON 标识将撤销其对象权限的对象 lFROM 标识将撤销其对象权限的用户或角色 lCASCADECONSTRAINTS 删除撤销使用REFERENCES或ALL权限定义的任何引用完整性约束限制 例13 8 从atea用户撤销emp对象的所有权限 SQL REVOKEALLONempFROMatea 需要注意的是 如果数据库管理员使用GRANT命令给用户A授予对象权限时带有WITHADMINOPTION选项 则该用户A有权将权限再次授予其他的用户B 在这种情况下 如果数据库管理员使用REVOKE命令撤销A用户的对象权限时 用户B的对象权限也被撤销 需要注意 在进行系统权限回收和进行对象权限回收时 效果是不一样的 第30页 13 3 4权限查询 用户被授予的系统权限或者对象权限都被记录在Oracle的数据字典中 了解某个用户被授予哪些系统权限和对象权限是确保应用系统安全的重要工作 如表13 1所示为Oracle11g用于存放用户 系统权限和对象权限有关的数据字典 例13 9 查询所有的对象权限 查找的结果应该截图粘贴在下面 SQL SELECT FROMdba tab privs 第31页 主要内容 13 1概述13 2用户管理13 3权限管理13 4角色管理13 5数据库审计13 6小结13 7习题 第32页 13 4角色管理 Oracle中的权限分类很多 设置十分复杂 就系统权限而言 在Oracle11g中就超过了200种 为数据库管理员正确有效地管理数据库权限带来了困难 而角色就是简化权限管理的一种数据库对象 13 4 1角色概述 角色是权限管理的一种工具 是一系列权限的集合 角色可以被授予任何用户 也可以从用户中收回 使用角色可以简化权限的管理 可以仅用一条语句就能从用户那里授予或者回收许多权限 而不必对用户一一授权 使用角色还可以实现权限的动态管理 比如随着应用的变化可以增加或者减少角色的权限 这样通过改变角色权限 就改变了多个用户的权限 第33页 角色 用户及权限是一组有密切关系的对象 既然角色是一组权限的集合 那么他被授予某个用户时才能有意义 可以如图13 1所示帮助我们理解角色 用户及权限的关系 图13 1用户 角色和权限的关系 第34页 在复杂的大型应用系统 要求对应用系统功能进行分类 从而形成角色的雏形 再使用CREATEROLE语句将它们创建为角色 最后根据用户工作的分工 将不同的角色 包括系统预定义的角色 授予各类用户 如果应用系统的规模很小 用户数也不多 则可以直接将应用的权限授予用户 即使是这样 用户也必须对Oracle系统的预定义角色有所了解 角色所对应的权限集合中可以包含系统权限和对象权限 角色是可以授予另外一个角色的 需要避免将角色授予它本身 也不能循环授予 13 4 2创建角色 如果系统预定义的角色不符合用户的需要 数据库管理员还可以创建更多的角色 创建用户自定义角色使用CREATEROLE语句来实现 第35页 创建角色语句的语法格式如下 CREATEROLErole name NOTIDENTIFIED IDENTIFIEDBYpassword 对其中的参数说明如下 lrole name 用于指定自定义角色名称 该名称不能与任何用户名或其他角色相同 lNOTIDENTIFIED 用户指定该角色由数据库授权 使该角色生效时不需要口令 lIDENTIFIEDBYpassword 用于设置角色生效时的认证口令 例13 10 创建不验证的角色doctor clerkSQL CREATEROLEdoctor clerk 例13 11 创建使用口令验证的角色SQL CREATEROLEunit clerkIDENTIFIEDBYcaption 例13 12 创建外部验证的角色SQL CREATEROLEunit managerIDENTIFIEDEXTERNALLY 第36页 13 4 3角色授权当角色被建立后 没有任何权限 只有对其授予权限 才有使用的意义 因此 在创建角色后 通常还需要立即为它授予权限 可以通过给用户授权的GRANT语句给角色授权 并将角色赋予相应的数据库用户 角色权限的授予与回收和用户权限的授予与回收类似 语法也与其相同 例13 13 为teller角色授予CREATESESSION和CREATEDATABASELINK权限SQL GRANTCREATESESSION CREATEDATABASELINKtoteller 对角色授权后 就可以将角色授予某个用户 例13 14 将teller角色授予用户wangSQL GRANTtellerTOwang 第37页 13 4 4角色的生效 失效当某角色生效时 属于角色的用户可以执行该角色所具有的所有权限操作 而当某角色失效时 拥有这个角色的用户将不能执行该角色的任何权限操作 因此 通过设置角色的生效或失效 可以动态改变用户的权限 设置角色生效或失效使用SETROLE语句 语法格式为 SETROLE role IDENTIFIEDBYpassword role IDENTIFIEDBYpassword ALL EXCEPTrole role NONE 第38页 参数说明如下 lrole 是角色的名称 lIDENTIFIEDBYpassword 提供角色生效时所需的口令 lALL 除了EXCEPT子句中列出的角色外 授予当前用户的全部角色生效 lEXCEPTrole 这些角色不生效 lNONE 当前会话的全部角色失效 只有直接授予用户的权限是可用的 角色的生效针对的是会话 在下一个会话中 用户的活动角色将默认为默认角色 如果角色设置了口令 则SETROLE命令中必须包含口令才能使角色生效 分配给用户的默认角色不需要口令 这些角色同没有口令的角色一样在登录时生效 第39页 例13 15 在当前会话中使角色doctor clerk生效 SQL SETROLEdoctor clerk 例13 16 在当前会话中使除了unit manager之外的所有角色生效 SQL SETROLEALLEXCEPTunit manager 例13 17 设置当前用户所有角色失效 SQL SETROLENONE 13 4 5修改角色修改角色时 只能修改角色生效或失效时的认证方式 也就是说 是否必须经过Oracle确认才允许对角色进行修改 而且 当前用户的角色必须通过ADMIN选项进行授予 或者当前用户必须具有ALTERANYROLE系统权限 修改角色的语法 ALTERROLErole NOTIDENTIFIED IDENTIFIED BYpassword USINGpackage EXTERNALLY GLOBALLY 第40页 参数说明如下 lrole 角色名称 lNOTIDENTIFIED 表明该角色生效时 不需要进行验证 lIDENTIFIED 表明该角色生效时 需要进行验证 lBYpassword 提供角色生效时所使用的口令 lEXTERNALLY 表明该角色生效之前 用户必须由外部服务 例如操作系统或网络服务 授权 lGLOBALLY 表明通过SETROLE语句使角色生效之前或登录时 必须由企业目录服务授权用户使用该角色 第41页 例13 18 修改角色unit clerk由外部验证 SQL ALTERROLEunit clerkIDENTIFIEDEXTERNALLY 例13 19 修改角色unit manager不验证 SQL ALTERROLEunit managerNOTIDENTIFIED 例13 20 修改角色doctor clerk验证密码 SQL ALTERROLEdoctor clerkIDENTIFIEDBYORDER 13 4 6删除角色如果不再需要某个角色或者某个角色的设置不太合理时 就可以使用DROPROLE来删除角色 使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年整形美容科激光祛斑技术原理考察自测模拟考试卷答案及解析
- 2025年电子支付行业移动支付安全风险与防范策略研究报告
- 2025年数字化音乐行业音乐版权保护与数字音乐服务研究报告
- 2025年绿色环保行业可再生能源发电技术研究报告
- 2025年智能家居行业智能家居设备与智能家庭研究报告
- 2025年智能家居设备行业智能家电与智能家居系统研究报告
- 2025年教育科技行业在线教育平台数据隐私保护研究报告
- 2025黑龙江黑河市嫩江市企事业单位招聘136人笔试模拟试题及答案解析
- 2025年淄博博山区城乡公益性岗位招聘(492名)笔试模拟试题及答案解析
- 固原市原州区精神残疾人及亲友协会对外公开招聘中~笔试备考题库及答案解析
- 【《企业人才招聘存在的问题与对策》5200字(论文)】
- 我国养老状况课件
- 心脏支架术后康复课件
- 国庆期间保安安全培训课件
- 监控设备迁移合同协议书
- 新学期-启航出发-2025-2026学年初一上学期新生开学第一课主题班会
- GB/T 14454.2-2008香料香气评定法
- 《干部履历表》(1999版电子版)
- ISO 9001:2015新版质量管理体系详解与案例文件汇编
- 数据中心基础知识培训
- 航天电子电气产品手工焊接工艺设计技术要求
评论
0/150
提交评论