第03章系统安全课后学习资料_第1页
第03章系统安全课后学习资料_第2页
第03章系统安全课后学习资料_第3页
第03章系统安全课后学习资料_第4页
第03章系统安全课后学习资料_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章 系统安全 Oracle利用下列机制管理数据库安全性 数据库用户和模式 权限 角色 存储设置和空间份额 资源限制 审计 3 2用户与角色 3 2 1用户和安全性概览 1 用户鉴别为了防止非授权的数据库用户的使用 Oracle提供三种确认方法 操作系统确认 Oracle数据库确认网络服务确认 用户管理的数据库的存取控制 Oracle数据库身份认证 连接中的密码加密 加密算法采用改进的DES和3DES算法 加密过程在数据传输之前完成 账户锁定 Oracle可以设置连接登录失败n次后 Oracle将锁定用户账户 密码生存周期检测历史密码验证密码复杂度 1 对于一般用户Oracle采用基于数据库的身份验证方法在数据字典中记载用户名 口令等信息 2 数据库管理员 DBA 身份认证 初始化参数REMOTE LOGIN PASSWORDFILE可以指定密码文件的使用方法 NONE Oracle数据库认定密码文件不存在 所有的连接都必须是安全连接 EXCLUSIVE 默认值 可以添加 修改和删除用户 也可以修改SYS用户的密码 SHARED 共享的密码文件不允许被修改 因此不允许添加新用户 也不能修改SYS或其他SYSDBA SYSOPER用户的密码 初始化参数remote login passwordfile SQLNET ORA文件 ORACLE HOME NETWORK ADMIN sqlnet ora参数NAMES DIRECTORY PATH表明解析客户端连接时所用的主机字符串的方式 TNSNAMES表示采用TNSNAMES ORA文件来解析 ONAMES表示Oracle使用自己的名称服务器 OracleNameServer 来解析 HOSTNAME表示使用host文件 DNS NIS等来解析 参数SQLNET AUTHENTICATION SERVICES表明用户连接Oracle服务器时使用哪种验证方式NONE表示Oracle数据库身份验证 NTS表示操作系统身份验证 两种方式可以并用 用 号注释参数 1 通过操作系统验证DBA用户 初始化参数 init ora文件中 remote login passwordfile NONEORACLE HOME NETWORK ADMIN sqlnet oraSQLNET AUTHENTICATION SERVICES NTS 在Windows中建立ORA DBA用户组将某个操作系统用户加入该组和Windows的Administrators组以该用户登录操作系统 以SYSDBA身份连接Oracle数据库时 不再需要验证SYS用户口令 修改参数 SQL showparameterremote loginNAMETYPEVALUE remote login passwordfilestringEXCLUSIVE 修改参数值 altersystemsetremote login passwordfile nonescope spfile重新启动数据库参数才能生效 添加用户到ORA DBA组 在使用OEM打开或关闭数据库时 需要在Window环境中进行一下设置 1 在 控制面板 中选择 计算机管理 2 选择 本地用户与组 组 ORA DBA组 添加 4 在 选择用户或组 中选择administrator或其他用户 再单击 确定 Windows的ORA DBA用户组 通过操作系统验证DBA用户 连接数据库 在SQL Plus中 如果采用操作系统认证方式登录 可以使用如下命令 CONNECT ASSYSDBA或者 CONNECT ASSYSOPER 2 使用Oracle口令文件验证DBA用户 初始化参数remote login passwordfile EXCLUSIVE SHAREDORACLE HOME NETWORK ADMIN sqlnet ora注释掉SQLNET AUTHENTICATION SERVICES NTS 用orapwd创建口令文件orapwdfile filenamepassword passwordentries max users为口令文件增加DBA特权用户GRANT SYSDBA SYSOPER TOuser name 查看口令文件中用户SELECT FROMv pwfile users 从口令文件中删除特权用户REVOKE SYSDBA SYSOPER FROMuser name 例 创建密码文件PWDorcl ora SYS用户的密码为syspwd SYSDBA和SYSOPER用户的最大数量为50 ORAPWDFILE E oracle product 10 2 0 db 1 database PWDorcl oraPASSWORD oracleENTRIES 50连接数据库C sqlplussys oracle orclassysdba GRANT命令为用户授予权限 例 向用户scott授予SYSDBA权限 GRANTSYSDBATOscott 通过视图V PWFILE USERS查看密码文件的内容 例 使用SQL语句查看代码文件的内容 SQL SELECT FROMV PWFILE USERS USERNAMESYSDBSYSOP SYSTRUETRUESCOTTTRUEFALSE 关于表空间的使用有几种设置选择 用户的缺省表空间 用户的临时表空间 数据库表空间的空间使用定额 2 用户的表空间设置和定额 利用显式地设置资源限制 安全管理员可防止用户无控制地消耗宝贵的系统资源 资源限制是由环境文件管理 一个环境文件是命名的一组赋给用户的资源限制 Oracle为安全管理员在数据库提供是否对环境文件资源限制的选择 3 用户资源限制和环境文件 用户管理应该考虑的问题身份验证方式默认表空间临时表空间表空间限额资源与口令限制 概要文件 账户状态操作权限等 3 2 2创建与管理用户 创建用户语法 CREATEUSERuser name IDENTIFIED BYpassword EXTERNALLY DEFAULTTABLESPACEtablespace TEMPORARYTABLESPACEtablespace QUOTA n K M UNLIMITED ONTABLESPACE PASSWORDEXPIRE ACCOUNT LOCK UNLOCK PROFILE profile DEFAULT Oracle标识符的特点 无论是用户帐户 还是其他的数据库对象 都需要一个合适的名称 如果希望某个名称成为合法的Oracle标识符 那么它必须遵循如下规则 不能是保留字 它必须使用1 30个字符 必须以数据库字符集中的字母字符开头 只能包含数据库字符集中的字母字符 以及字符 等 不能包含单引号或双引号 要求 密码为stu01pwd 默认表空间为USERS 临时表空间为TEMP 例 创建学生成绩管理系统用户stu01 CREATEUSERstu01IDENTIFIEDBYstu01pwdDEFAULTTABLESPACEUSERSTEMPORARYTABLESPACETEMP 2 系统与对象权限管理 数据库系统及其中对象的访问权限一般应由数据库系统管理员 DBA 进行统一管理 权限是执行特定SQL语句和访问对象的权利 权限被授予的用户能够完成这些特定的工作 Oracle数据库用户权限分类 对象权限允许用户执行对指定对象 包括表 视图 序列 过程 函数和包 的特定操作 如将数据插入到某个表中 允许检索某个表中数据等 系统特权允许用户执行特定的系统级操作或在特定的对象类型上执行特定操作 如创建表空间 创建表等 2 1系统特权 系统权限分类一类是对数据库某一类对象的操作能力 通常带有ANY关键字 例如 CREATEANYINDEX ALTERANYINDEX DROPANYINDEX 另一类系统权限是数据库级别的某种操作能力 例如 CREATESESSION 数据库系统特权的授予与回收 system privilege 表示系统权限列表 以逗号分隔 user 表示用户列表 以逗号分隔 role list 表示角色列表 以逗号分隔 WITHADMINOPTION 允许得到权限的用户将权限转授其他用户PUBLIC 表示系统中所有用户 用于简化授权 1 授予系统特权的语法 GRANT system privilege role TO user role PUBLIC WITHADMINOPTION 只有DBA才应当拥有ALTERDATABASE系统权限 应用程序开发者一般需要拥有CREATETABLE CREATEVIEW和CREATEINDEX等系统权限 普通用户一般只具有CREATESESSION系统权限 系统权限授予时需要注意的几点 授予用户stu01相关的权限 建立系统连接 创建表 视图 索引 存储过程 触发器 序列 同义词 触发器等 GRANTCREATESESSIONTOstu01 GRANTCREATECLUSTERTOstu01 GRANTCREATEDATABASELINKTOstu01 GRANTCREATEANYINDEXTOstu01 GRANTCREATEMATERIALIZEDVIEWTOstu01 GRANTCREATEPROCEDURETOstu01 GRANTCREATESEQUENCETOstu01 GRANTCREATESYNONYMTOstu01 GRANTCREATETABLETOstu01 GRANTCREATETRIGGERTOstu01 GRANTCREATETYPETOstu01 GRANTCREATEVIEWTOstu01 DBA SYS PRIVS视图 查看授予用户的系统特权信息查询用户的系统权限CONNECTsys xingong421 orclCOLUMNGRANTEEFORMATA22SETPAGESIZE800SELECTgrantee privilege admin optionFROMdba sys privsORDERBYgrantee privilege 查询用户系统特权 数据字典 USER SYS PRIVS查看用户自己获得的系统特权查询stu01用户的系统权限CONNECTstu01 stu01pwd orclCOLUMNUSERNAMEFORMATA10SELECTusername privilege admin optionFROMuser sys privs 当系统特权使用WITHADMINOPTION选项传递给其他用户时 收回原始用户的系统特权将不会产生级联效应 回收传递授予用户的权限 2 回收系统特权的语法如下 REVOKE system privilege role FROM user role PUBLIC 系统特权应逐个用户检查和管理 2 2对象权限 Oracle提供针对性的对象存取控制权限 创建对象的用户拥有该对象的所有对象权限 无需为对象的拥有者授予对象权限 对象权限的授予与回收 1 对象权限的授权语法如下 GRANT object privilege ALL column list ONschema objectTO user role PUBLIC WITHGRANTOPTION object privilege 表示对象权限列表 以逗号分隔 schema object 表示指定的模式对象 默认为当前模式中的对象 user 表示用户列表 以逗号分隔 role 表示角色列表 以逗号分隔 PUBLIC 表示系统中所有用户 用于简化授权 WITHGRANTOPTION 允许得到权限的用户将权限转授其他用户 注意 使用对象属主名前缀标识其他用户的对象用户名 对象名 应只对确实需要该对象访问权限的用户授权只授予必须的权限 有必要限制ALL的使用 例 对象访问权限授予 表 将scott用户的emp表的查询 插入 删除权限授予stu01用户CONNscott tigerGRANTSELECT INSERT DELETEONempTOstu01 例 对象访问权限授予 列 将scott用户的的dept表deptno dname 列的修改权限权限授予stu01用户CONNscott tiger orclgrantupdate deptno dname ondepttostu01 查询对象权限信息 数据字典 DBA TAB PRIVS 包含数据库所有对象的授权信息ALL TAB PRIVS 包含数据库所有用户和PUBLIC用户组的对象授权信息USER TAB PRIVS 包含当前用户对象的授权信息DBA COL PRIVS 包含所有字段已授予的对象权限ALL COL PRIVS 包含所有字段已授予的对象权限信息USER COL PRIVS 包含当前用户所有字段已授予的对象权限信息 查询stu01用户的授权信息 CONNstu01 stu01pwd orclCOLUMNGRANTEEFORMATA10SELECTgrantee table name grantor privilege grantableFROMuser tab privs CASCADECONSTRAINTS表示级联删除对象上存在的参照完整性约束使用WITHGRANTOPTION传递给其他用户时 收回原始用户的对象权限将会产生级联效应 其他用户的对象访问权限会被一并收回 2 数据库对象权限的回收语法如下 REVOKE object privilege ALL ONschema objectFROM user role PUBLIC CASCADECONSTRAINTS 数据库对象权限的回收 注意 创建用户 OEM 显示用户信息 创建用户 页面 选择表空间 查看新建用户NEWUSER的信息 用户权限管理 系统权限设置页面 修改系统权限页面 新用户默认的拥有CONNECT角色的权限 查询用户信息 数据字典 ALL USERS 包含数据库所有用户的用户名 用户ID和用户创建时间 DBA USERS 包含数据库所有用户的详细信息 USER USERS 包含当前用户的详细信息 DBA TS QUOTAS 包含所有用户的表空间配额信息 USER TS QUOTAS 包含当前用户的表空间配额信息 V SESSION 包含用户会话信息 查询scott用户账户的基本信息 colUSERNAMEfora12colACCOUNT STATUSfora15selectUSERNAME USER ID ACCOUNT STATUS DEFAULT TABLESPACEfromuser users USERNAMEUSER IDACCOUNT STATUSDEFAULT TABLESPACE SCOTT54OPENUSERS 查询数据库中各用户的会话信息 connsys xingong421assysdbaselectSID LOGON TIME USERNAMEfromv session SIDLOGON TIMEUSERNAME15830 9月 11SCOTT15930 9月 11SYS16030 9月 11 3 修改用户 修改用户语法ALTERUSERuser IDENTIFIED BYpassword EXTERNALLY DEFAULTTABLESPACETABLESPACE TEMPORARYTABLESPACETABLESPACE QUOTA n K M UNLIMITED ONTABLESPACE PASSWORDEXPIRE ACCOUNT LOCK UNLOCK PROFILE profile DEFAULT 要求 密码修改为newpwd 将该账户锁定 例 修改用户stu01 ALTERUSERstu01IDENTIFIEDBYnewpwdACCOUNTLOCK 修改用户 OEM 编辑用户页面 帐户的状态 锁定和取消锁定 锁定和解锁stu01用户 一 锁定stu01用户1 在OEM中锁定用户账号2 通过SQL命令锁定用户账号ALTERUSERstu01ACCOUNTLOCK 二 解除锁定stu01用户1 在OEM中解除用户账号的锁定2 通过SQL命令解除用户账号锁定ALTERUSERstu01ACCOUNTUNLOCK 4 删除用户 删除用户语法DROPUSERuser CASCADE CASCADE表示级联删除该用户所属的方案对象 例题 删除用户stu01 DROPUSERstu01CASCADE 删除用户 OEM 确认删除页面 3 2 3角色管理 角色为相关权限的命名组 可授权给用户和角色 角色的使用步骤 1 由DBA创建角色 2 为角色授予相应的系统特权和对象权限 3 将角色授予相关的数据库用户默认表空间可将多个角色授予同一个Oracle数据库用户 预定义角色 预定义角色是指在Oracle数据库创建时由系统自动创建的一些常用的角色 这些角色已经由系统授予了相应的权限 DBA可以直接利用预定义的角色为用户授权 也可以修改预定义角色的权限 Oracle数据库中有30多个预定义角色 1 创建角色 CREATEROLErole NOTIDENTIFIED IDENTIFIED BYPASSWORD EXTERNALLY 参数说明role name 用于指定自定义角色名称 该名称不能与任何用户名或其他角色相同 NOTIDENTIFIED 用于指定该角色由数据库授权 使该角色生效时不需要口令 IDENTIFIEDBYpassword 用于设置角色生效时的认证口令 例 创建角色 r stu 创建一个名为r stu的角色 采用该角色改进学生成绩管理系统用户权限管理工作 CREATEROLEr stu 创建角色 OEM 显示角色信息 创建角色页面 MYROLL 查看角色MYROLL的信息 2 修改角色 角色应被授予需要的系统特权 对象权限 在创建Oracle数据库时 Oracle会创建预定义的角色并给它们授予相关的系统特权和对象权限 赋予角色r stu用户相关的权限 建立系统连接 创建表 视图 索引 触发器 类型存储过程 触发器 序列 同义词等 并将该角色付给用户stu01 例 赋予角色r stu相关权限 GRANTCREATESESSION CREATETABLE CREATEVIEW CREATEPROCEDURE CREATETRIGGER CREATESEQUENCE CREATESYNONYM CREATECLUSTER CREATEDATABASELINK CREATETRIGGER CREATEANYINDEX CREATETYPE CREATEMATERIALIZEDVIEWTOr stu GRANTr stuTOstu01 对角色授权 系统权限设置页面 修改系统权限页面 查询角色信息 数据字典 DBA ROLES 数据库中所有的角色 ROLE ROL PRIVS 给角色授予权限的角色 DBA SYS PRIVS 拥有系统权限的用户和角色 ROLE SYS PRIVS 拥有系统权限的角色 ROLE TAB PRIVS 拥有对象权限的角色 3 删除角色 删除角色语法DROPROLErole 例 删除角色r stuDROPROLEr stu 删除角色 OEM 确认删除页面 3 5 1创建概要文件 创建概要文件的语法CREATEPROFILEprofileLIMIT SESSIONS PER USER CPU PER SESSION CPU PER CALL CONNECT TIME IDLE TIME LOGICAL READS PER SESSION LOGICAL READS PER CALL COMPOSITE LIMIT n UNLIMITED DEFAULT PRIVATE SGA n K M UNLIMITED DEFAULT FAILED LOGIN ATTEMPTS PASSWORD LOCK TIME PASSWORD GRACE TIME PASSWORD LIFE TIME PASSWORD REUSE MAX PASSWORD REUSE TIME n UNLIMITED DEFAULT PASSWORD VERIFY FUNCTION function name NULL DEFAULT 资源参数的值可以是一个整数或UNLIMITED或DEFAULT Oracle可限制几种类型的系统资源的使用 每种资源可在会话级 调用级或两者上控制 在会话级 每一次用户连接到一数据库 建立一会话 每一个会话在执行SQL语句的计算机上耗费CPU时间和内存量进行限制 在调用级 在SQL语句执行时 处理该语句有几步 为了防止过多地调用系统 Oracle在调用级可设置几种资源限制 1 资源限制参数 resource parameters resource parameters的表达式 SESSIONS PER USERinteger UNLIMITED DEFAULT 限制一个用户并发会话个数 CPU PER SESSIONinteger UNLIMITED DEFAULT 限制一次会话的CPU时间 以秒 100为单位 CPU PER CALLinteger UNLIMITED DEFAULT 限制一次调用的CPU时间 以秒 100为单位 CONNECT TIMEinteger UNLIMITED DEFAULT 一次会话持续的时间 以分钟为单位 IDLE TIMEinteger UNLIMITED DEFAULT 限制一次会话期间的连续不活动时间 以分钟为单位 LOGICAL READS PER SESSIONinteger UNLIMITED DEFAULT 规定一次会话中读取数据块的数目 包括从内存和磁盘中读取的块数 LOGICAL READS PER CALLinteger UNLIMITED DEFAULT 规定处理一个SQL语句一次调用所读的数据块的数目 COMPOSITE LIMTinteger UNLIMITED DEFAULT 规定一次会话的资源开销 以服务单位表示该参数值 PRIVATE SGAinteger K M UNLIMITED DEFAULT 规定一次会话在 SGA 的共享池可分配的私有空间的数目 以字节表示 口令参数策略 1 账户的锁定策略用户在连续输入多少次错误的口令后 将由Oracle自动锁定用户的账户 并且可以设置账户锁定的时间 2 口令的过期策略强制用户定期修改自己的口令 当口令过期后 Oracle将随时提醒用户修改口令 如果用户仍然不修改自己的口令 Oracle将使他的口令失效 3 口令的复杂度策略在概要文件中可以通过指定的函数来强制用户的口令必须具有一定的复杂度 2 口令参数 password parameters FAILED LOGIN ATTEMPTSexpression UNLIMITED DEFAULT 在锁定用户帐户之前登录用户帐户的失败次数 PASSWORD LIFE TIMEexpression UNLIMITED DEFAULT 限制同一口令可用于验证的天数 PASSWORD REUSE TIMEexpression UNLIMITED DEFAULT 规定口令不被重复使用的天数 PASSWORD REUSE MAXexpression UNLIMITED DEFAULT 规定当前口令被重新使用前需要更改口令的次数 PASSWORD LOCK TIMEexpression UNLIMITED DEFAULT 指定次数的登录失败而引起的帐户封锁的天数 PASSWORD GRACE TIMEexpression UNLIMITED DEFAULT 在登录依然被允许但已开始发出警告之后的天数 PASSWORD VERIFY FUNCTIONfunction NULL DEFAULT 允许PL SQL的口令校验脚本作为CREATEPROFILE语句的参数 function口令复杂性校验程序的名字 NULL表示没有口令校验功能 password parameters的表达式 例 创建概要文件 创建学生成绩管理系统用户限制使用资源的概要文件 CREATEPROFILEstu profileLIMITCPU PER SESSION1000CPU PER CALL1000CONNECT TIME110IDLE TIME30SESSIONS PER USER10LOGICAL READS PER SESSIONDEFAULTLOGICAL READS PER CALLDEFAULTPRIVATE SGADEFAULTCOMPOSITE LIMITDEFAULTFAILED LOGIN ATTEMPTS20PASSWORD LOCK TIME30PASSWORD GRACE TIME60PASSWORD LIFE TIME20PASSWORD REUSE MAX5PASSWORD REUSE TIMEUNLIMITEDPASSWORD VERIFY FUNCTIONNULL 创建概要文件 OEM 启动并登录到OEM 以SYSDBA的身份连接到要操作的数据库 选择 概要文件 一般信息 选项页面 详细资料区设置 CPU 会话 一个会话占用CPU的时间总量 CPU 调用 一个调用占用CPU的时间最大值 连接时间 一个会话持续的时间的最大值 空闲时间 一个会话处于空闲状态的时间最大值 数据库服务区设置 并行会话数 一个用户进行并行会话的最大数量 读取数 会话 一个会话读取的数据块总量 读取数 调用 一个调用在处理一个PL SQL语句时读取数据块的最大数量 专用SGA 在系统全局区 SGA 的共享池中 一个会话可分配的专用空间量的最大值 限制 一个会话耗费的资源总量 Default 使用DEFAULT概要文件为该资源指定的限值 Unlimited 可以不受限制地利用该资源 2 口令选项页面 口令 选项 可以设置有效期和失效后锁定状态 有效期 多少天后口令失效 最大锁定天数 口令失效后第一次用它登录后多少天内可以更改此口令 历史记录 选项 设置如何保留 保留的口令数 口令能被重新使用前必须被更改的次数 保留天数 限定口令失效后经过多少天才可以重新使用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论