1、2022年6月21日星期二Oracle 10g管理及应用第八章 用户帐号管理和权限控制t8.1 Oracle安全机制 t8.2 用户帐号管理 t8.3 权限管理t8.4 角色管理t8.5 概要文件t实训6 创建概要文件、用户和授予权限8.1 Oracle安全机制 数据库中的数据的安全性主要涉及到以下几个方面: 身份验证:身份验证:保证只有合法的用户才能登录并使用数据库。 访问控制:访问控制:即使是合法用户,也要控制用户对数据库对象的访问,拒绝非授权访问,防止信息泄密。 可审计性:可审计性:哪怕是非法用户的入侵行为和破坏行为也能跟踪,恢复数据。 语义保密性:语义保密性:数据库中的数据以某种加密的
2、形式存储,这样非法用户即使得到数据文件也无法利用。Oracle 10g管理及应用2022年6月21日星期二2022年6月21日星期二Oracle 10g管理及应用8.1 Oracle安全机制 当用户连接到一个Oracle数据库时,必须经过身份认证,Oracle有两种身份验证方式:一数据库身份验证二外部身份验证2022年6月21日星期二Oracle 10g管理及应用8.2 用户帐号管理t8.2.1 创建用户帐号 t8.2.2 用户帐号状态 t8.2.3 修改用户帐号t8.2.4 锁定和解锁用户帐号t8.2.5 删除用户2022年6月21日星期二Oracle 10g管理及应用8.2.1 创建用户帐
3、号1通过SQL命令创建用户创建用户的语法格式如下所示:CREATE USER 用户名 IDENTIFIED BY 口令DEFAULT TABLESPACE 默认表空间TEMPORARY TABLESPACE 临时表空间QUOTA数值K| M | UMLIMITED ON 表空间名PROFILE 概要文件名ACCOUNT LOCK | ACCOUNT UNLOCK以下代码创建了一个用户ORCLUSER_1 System CREATE USER ORCLUSER_1 PROFILE DEFAULT IDENTIFIED BY AAA ACCOUNT UNLOCK; GRANT CONNECT TO
4、 ORCLUSER_1;2在OEM中创建用户(演示)2022年6月21日星期二Oracle 10g管理及应用8.2.2 用户帐号状态 用户的帐号有两种状态,DBA可以通过设置状态的方法使账户可用或不可用。 一帐号锁定 锁定帐号可以使某个帐号不可用。 二账户解锁 该状态下,帐号可以正常登陆。2022年6月21日星期二Oracle 10g管理及应用8.2.3 修改用户帐号1通过SQL命令修改用户账号修改用户账号的语法格式如下所示:ALTER USER 用户名 IDENTIFIED BY口令DEFAULT TABLESPACE 默认表空间TEMPORARY TABLESPACE 临时表空间QUOTA
5、数值K| M | UMLIMITED ON 表空间名PROFILE 概要文件名ACCOUNT LOCK | ACCOUNT UNLOCK以下代码修改了用户账号:ALTER USER ORCLUSER_1 IDENTIFIED BY AAA QUOTA 20M ON ORCLTABLESPACE;2在OEM中修改用户账号(演示)2022年6月21日星期二Oracle 10g管理及应用8.2.4 锁定和解锁用户帐号一锁定用户1在OEM中锁定用户账号(演示)2通过SQL命令锁定用户账号 ALTER USER ORCLUSER_1 ACCOUNT LOCK;二解除锁定1在OEM中解除用户账号的锁定(演
6、示)2通过SQL命令解除用户账号锁定 ALTER USER ORCLUSER_1 ACCOUNT UNLOCK;2022年6月21日星期二Oracle 10g管理及应用8.2.5 删除用户 1在OEM中删除用户账号(演示) 2通过SQL命令删除用户账号 DROP USER ORCLUSER_1 CASCADE; 其中CASCADE表示级联,即删除用户之前,先删除它所拥有的实体。2022年6月21日星期二Oracle 10g管理及应用8.3 权限管理t8.3.1 数据库权限的种类 t8.3.2 授予系统权限 t8.3.3 授予对象权限2022年6月21日星期二Oracle 10g管理及应用8.3
7、.1 数据库权限的种类 权限是执行某一种操作的能力,在Oracle数据库中是利用权限来进行安全管理的,Oracle系统通过授予和撤销权限来实现对数据库安全的访问控制,这些权限可以分为两类: 系统权限:指在系统级控制数据库的存取和使用的机制。如是否能启动、停止数据库。是否能修改数据库参数等。Oracle提供了众多的系统权限,每一种系统权限指明用户进行某一种或某一类特定的数据库操作。系统权限中带有ANY关键字指明该权限的范围为数据库中的所有方案。 对象权限:对象权限指在特定数据库对象上执行某项操作的能力。与系统权限相比,对象权限主要是在Oracle对象上能够执行的操作,如查询、插入、修改、删除、执
8、行等。这里的Oracle对象主要包括表、视图、聚簇、索引、序列、快照、函数、包等。不同的Oracle对象具有不同的对象权限,如表具有插入的对象权限,而序列却没有,而序列具有的执行对象权限表也没有。2022年6月21日星期二Oracle 10g管理及应用8.3.2 授予系统权限1在OEM中进行用户授权(演示) 2通过SQL命令对用户授权 GRANT 系统权限 | , TO 用户 WITH ADMIN OPTION ;2022年6月21日星期二Oracle 10g管理及应用8.3.3 授予对象权限1在OEM中进行用户授权 2通过SQL命令对用户授权 GRANT 对象权限 | , TO 用户 WIT
9、H GRANT OPTION ;2022年6月21日星期二Oracle 10g管理及应用8.4 角色管理t8.4.1 角色概述 t8.4.2 创建角色 t8.4.3 给角色授予权限t8.4.4 将角色授予用户t8.4.5 删除角色2022年6月21日星期二Oracle 10g管理及应用8.4.1 角色概述 权限是Oracle数据库定义好的执行某些操作的能力。角色是权限管理的一种工具,即有名称的权限的集合。权限和角色是密不可分的。DBA可以利用角色来简化权限的管理。 Oracle数据库就借用了角色这种概念来实现这种权限管理的方法,达到简化权限管理的目的。角色是对权限进行集中管理(授予、回收)的一
10、种方法,它是一组相关权限的组合,即将不同的权限组合到一起就形成了角色。 2022年6月21日星期二Oracle 10g管理及应用8.4.2 创建角色1在OEM中创建角色(演示) 2通过SQL命令创建角色 CREATE ROLE 角色名 IDENTIFIED BY 口令;2022年6月21日星期二Oracle 10g管理及应用8.4.3 给角色授予权限一为角色授予系统权限 1在OEM中进行角色授权(演示) 2通过SQL命令进行角色授权 GRANT 系统权限 | , TO 角色 | PUBLIC | , WITH ADMIN OPTION ;二为角色授予对象权限 1在OEM中进行角色授权(演示)
11、2通过SQL命令进行角色授权 GRANT 对象权限 | , TO 角色 | PUBLIC | , WITH GRANT OPTION ;2022年6月21日星期二Oracle 10g管理及应用8.4.4 将角色授予用户1在OEM中将角色授予用户(演示) 2通过SQL命令将角色授予用户 GRANT角色 TO 用户;2022年6月21日星期二Oracle 10g管理及应用8.4.5 删除角色 1在OEM中删除角色(演示) 2通过SQL命令删除角色 DROP ROLE 角色名;2022年6月21日星期二Oracle 10g管理及应用8.5 概要文件t8.5.1 概要文件概述 t8.5.2 创建和分配
12、概要文件 t8.5.3 修改和删除概要文件2022年6月21日星期二Oracle 10g管理及应用8.5.1 概要文件概述 概要文件(profile)是一个命名的资源限定的的集合,它是Oracle安全策略的重要组成部分。利用概要文件,可以限制用户对数据库或者资源的使用,更多的是为用户设置口令策略。通常情况下,可以按角色建立不同的概要文件,依据每个用户所属的角色为它分配不同的概要文件,而不用为每个用户创建单独的概要文件。2022年6月21日星期二Oracle 10g管理及应用8.5.2 创建和分配概要文件1在OEM中创建概要文件(演示)2通过SQL命令创建概要文件CREATE PROFILE 概
13、要文件名 LIMITCONNECT_TIME 数值IDLE_TIME数值CPU_PER_CALL数值CPU_PER_SESSION数值LOGICAL_READS_PER_CALL数值LOGICAL_READS_PER_ SESSION数值SESSIONS_PER_USER数值COMPOSITE_LIMIT数值PRIVATE_SGA数值FAILED_LOGON_ATTEMPTS数值PASSWORD_LIFE_TIME数值PASSWORD_GRACE_TIME数值PASSWORD_LOCK_TIME数值PASSWORD_REUSE_TIME数值PASSWORD_REUSE_MAX数值PASSWOR
14、D_VERIFY_FUNCTION数值;2022年6月21日星期二Oracle 10g管理及应用8.5.3 修改和删除概要文件1在OEM中修改概要文件(演示) 2通过SQL命令创建概要文件ALTER PROFILE 概要文件名 LIMITCONNECT_TIME 数值IDLE_TIME数值CPU_PER_CALL数值CPU_PER_SESSION数值LOGICAL_READS_PER_CALL数值LOGICAL_READS_PER_ SESSION数值SESSIONS_PER_USER数值COMPOSITE_LIMIT数值PRIVATE_SGA数值FAILED_LOGON_ATTEMPTS数值
15、PASSWORD_LIFE_TIME数值PASSWORD_GRACE_TIME数值PASSWORD_LOCK_TIME数值PASSWORD_REUSE_TIME数值PASSWORD_REUSE_MAX数值PASSWORD_VERIFY_FUNCTION数值;2022年6月21日星期二Oracle 10g管理及应用8.5.3 修改和删除概要文件 1在OEM中删除概要文件(演示) 2通过SQL命令删除概要文件 DROP PROFILE 概要文件名 CASCADE2022年6月21日星期二Oracle 10g管理及应用实训6 创建概要文件、用户和授予权限t目标完成本实验后,将掌握以下内容:(1)创建
16、概要文件(2)创建用户(3)向用户授予权限2022年6月21日星期二Oracle 10g管理及应用实训6 创建概要文件、用户和授予权限t准备工作 在进行本实验前,必须已完成实训6的练习1,(在“实训Ch8实训练习”文件夹中要提供“建立实训环境.sql”文件,此文件为创建实训环境所需的脚本,并在此处写明,在实训前,如果没有完成实训6中的内容,则执行此脚本以创建实训环境)2022年6月21日星期二Oracle 10g管理及应用实训6 创建概要文件、用户和授予权限t场景 为确保东升软件股份有限公司的人事管理系统数据库的安全,需要限制未得到授权的用户访问数据库中的数据,为此需要单独创建用户USER_1
17、,并授予它一定的权限,来保证数据库的安全。2022年6月21日星期二Oracle 10g管理及应用实训6 创建概要文件、用户和授予权限练习1 创建概要文件。1在OEM中创建概要文件本练习中, 创建一个口令有效期为7天,锁定前允许的最大失败登陆次数为3 的概要文件MYPROFILE。实验步骤: (1)以SYSTEM用户,Normal连接身份登陆OEM,出现数据库主页的“主目录”属性页。单击“管理”超链接,出现“管理”属性页。单击“方案”标题下的“概要文件”超链接,出现“概要文件”页。(2)单击“创建”按钮,出现“创建概要文件”页的“一般信息”选项卡,在“名称“文本框中输入概要文件的名称“MYPR
18、OFILE”。(3)单击“口令”超链接,出现“口令”选项卡。(4)在“有效期”文本框中输入有限天数“7”,在“锁定前允许的最大失败登陆次数”文本框中输入次数“3”。 (5)单击“确定”按钮,可看见“已成功创建对象”的更新消息。2通过SQL命令创建概要文件(1)以SYSTEM身份登录SQL *Plus。(2)在SQL *Plus中输入创建概要文件的语句。注意,如果在OEM中已创建相同的概要文件,则请先删除此概要文件。2022年6月21日星期二Oracle 10g管理及应用实训6 创建概要文件、用户和授予权限练习2 创建用户。本练习中, 创建一个使用MYPROFILE概要文件的用户USER_1。实
19、验步骤:1在OEM中创建用户(1)以SYSTEM用户,Normal连接身份登陆OEM,出现数据库主页的“主目录”属性页。单击“管理”超链接,出现“管理”属性页。单击“方案”标题下的“用户”超链接,出现“用户”页。(2)单击“创建”按钮,出现“创建用户”页,在“名称”文本框中输入用户名称USER_1,在“概要文件”下拉列表框选择“MYPROFILE”,在“输入口令”文本框和“确认口令”文本框中输入自己的口令,在“默认表空间”和“临时表空间”文本框中选择合适的表空间,其它使用默认值。(3)单击“确定”返回“用户”页,可看见“已成功创建对象”的更新消息。此时在“用户”页即可看见新创建的用户USER_
20、1。2通过SQL命令创建用户(1)以SYSTEM身份登录SQL *Plus。(2)在SQL *Plus中输入创建用户的语句。注意,如果在OEM中已创建相同的用户,则请先删除此用户。2022年6月21日星期二Oracle 10g管理及应用实训6 创建概要文件、用户和授予权限练习3 授予权限。本练习中,将表TABLE_1的所有权限授予用户USER_1。实验步骤:1在OEM中授予权限(1)以SYSTEM用户,Normal连接身份登陆OEM,出现数据库主页的“主目录”属性页。单击“管理”超链接,出现“管理”属性页。单击“方案”标题下的“用户”超链接,出现“用户”页,选中需要授予权限的用户名,如USER
21、_1,单击“编辑”按钮,出现“编辑用户”页。(2)单击“对象权限”超链接,出现“对象权限”选项卡,可以看见对象权限下显示“未找到任何项”,也就是说用户USER_1无任何对象权限。(3)“选择对象类型”下拉列表框中选择合适的对象,如表,单击右边的“添加”按钮,出现“添加表对象权限”页。(4)单击“选择表对象”框右边的手电筒图标选择表TABLE_1,通过“全部移动”按钮将右边“可用权限”列表中的所有权限移动到“所选权限”列表框中,为用户授予表对象TABLE_1所有的权限。(5)单击“确定”按钮,返回“编辑用户”页,可以看见表对象TABLE_1的所有权限中出现在列表中。(6)单击“应用”按钮,出现“已成功修改用户USER_1”的更新消息。2通过SQL命令授予权限(1)以SYSTEM身份登录SQL *Plus。(2)在SQL *Plus中输入授予权限的语句。注意,如果在OEM中已授予相同的权限,则请先回收权限。