资源描述
个人收集整理 勿做商业用途
第10章 Oracle数据库安全管理
Ñ 学习目标:
● 了解Oracle的安全机制。
● 掌握用户的概念和管理方法.
● 掌握权限和角色的概念和管理方法。
● 了解概要文件的概念和应用方法。
安全性对于任何一个数据库管理系统来说都是至关重要的.数据库中通常存有大量的数据,任何非法的访问和侵入都可能会造成无法挽救的损失.Oracle数据库提供了严格、可靠的安全性保护和使用效率,这是其他数据库无法相比的。
10.1 安全管理概述
数据共享是数据库的主要特点之一,特别是基于网络的数据库,保证数据安全则更加重要。Oracle数据库安全性可以分为以下几个层次:
系统安全性:系统级控制数据的存取和使用的机制,包括数据库用户和方案、存储设置、数据库审计、数据库系统跟踪等.
数据安全性:实体级控制数据库的存取和使用的机制,包括系统权限、对象权限、存期资源控制等。
网络安全性:Oracle数据库主要面向网络提供服务,网络软件的安全性和网络数据传输至关重要。它主要包括登录助手、目录管理等集成工具,并通过分发Wallet、数字证书、SSL安全套接字和数字密钥来保证网络数据传输的安全.
在本章我们着重介绍系统安全性及数据安全性,主要涉及的内容有:用户管理、权限管理及角色管理等。
10.2 用户
为了使用Oracle,我们需要为自己的数据建立相应的用户账户,这是一项基础而重要的工作.在实际应用中,我们应该避免使用SYS 、SYSTEM 等管理账户。下面介绍如何创建和管理用户。
10.2.1 用户和方案
用户(User):也称为账户,是定义在数据库中的对象,是Oracle数据库的基本访问控制机制.当连接到Oracle数据库时,默认情况下必须要提供用户名和口令。只有输入了正确的用户名和口令,才能连接到数据库。
方案(Schema):是用户所拥有的数据库对象的集合。在Oracle数据库中对象是以用户来组织的,用户与方案时一一对应得关系,并且名称相同。例如:SYSTEM用户拥有SYSTEM方案的所有对象,而SCOTT用户拥有SCOTT方案的所有对象。
当访问数据库对象时,注意以下几点:
● 同一个方案中不能存在同名对象,但不同方案下可以有同名对象。
● 用户可以直接访问其方案对象,如果要访问其他方案对象,要求必须有对象权限。
● 用户访问其他方案对象,需添加方案名作前缀.
● SYS方案拥有数据库目录的基本表和视图,这些基本表和视图对Oracle数据库是至关重要的。Oracle系统为保持数据字典的一致性,SYS方案的表不能被任何用户或管理员修改。
10.2.2 创建用户
1. 创建用户
创建用户操作一般由DBA用户来完成,如果以其他用户身份创建用户,要求该用户具有CREATE USER的系统权限。创建用户的基本语法如下:
CREATE USER 〈username〉 IDENTIFIED BY <pwd>
DEFAULT TABLESPACE 〈tablespace_name〉
TEMPORARY TABLESPACE <tablespace_name>
QUOTA <n〉MB ON <tablespace_name>
PASSWORD EXPIRE;
其中:
● username:所创建用户名;
● INDENTIFIED BY:指定用户密码;
● DEFAULT TABLESPACE:指定用户默认的表空间;
● TEMPORARY TABLESPACE:指定用户临时表空间;
● QUOTA:指定表空间配额,用来设置用户对象在表空间上可占用的最大空间;
● PASSWORD EXPIRE:指定口令到期后,强制用户在登录时修改口令.
【例10.1】在Student数据库中创建名为 “my_user1”的用户帐户。代码如下:
CONN SYSTEM/***
CREATE USER my_user1
IDENTIFIED BY aaa;
图10。1 创建用户“my_user1”
注意:
● 初始创建的用户没有任何权限,不能执行任何数据库操作.
● 如果不指定DEFAULT TABLESPACE,Oracle会将数据库默认表空间作为用户的默认表空间。
● 如果不指定TEMPORARY TABLESPACE,Oracle会将数据库默认临时表空间作为用户的临时表空间。
● 如果不指定QUOTA子句,用户的表空间配额为0,这样用户没有在相应表空间上创建数据库对象的权限。
2. 用户授权
用户授权的详细介绍见后面权限一节。这里给my_user1用户分配CREATE SESSION 和CREATE TABLE权限。
【例10.2】为“my_user1”用户分配“CREATE SESSION”,“CREATE TABLE”权限。代码如下:
GRANT CREATE SESSION ,CREATE TABLE TO my_user1;
图10。2 为用户“my_user1”授权
10.2.3 修改用户
由于工作需要,DBA在管理数据库时可能需要修改用户帐户,如:修改密码;锁定帐户或解除账户锁定;修改用户的默认表空间或临时表空间;修改表空间配额等。修改用户帐户使用ALTER USER命令。
3. 修改密码
任何用户都可以修改自己的帐户密码,系统管理员可以重置其它用户账户。
【例10.3】将用户帐户“my_user1"密码修改为“abc”。代码如下:
ALTER USER my_user1 IDENTIFIED BY abc;
图10。3修改用户my_user1的密码
4. 锁定及解除账户锁定
在管理数据库时,DBA可以根据需要锁定某些用户账户,临时取消这些账户的使用。在Oracle系统中,在数据库安装期间,就创建了大量的用户帐户,默认情况下,许多账户是锁定的。锁定及解除账户锁定的基本语法如下:
ALTER USER 〈username〉ACCOUNT [LOCK | UNLOCK];
【例10。4】锁定用户帐户“my_user1"。代码如下:
CONN SYSTEM/***
ALTER USER my_user1 ACCOUNT LOCK ;
图10.4 锁定用户账户“my_user1”
锁定该账户后,再以该账户连接数据库,提示不能连接到Oracle.以同样的方法为该帐户解除锁定,并验证其有效性.
【例10.5】为系统帐户“SCOTT”解除锁定并进行数据库连接。
ALTER USER SCOTT ACCOUNT UNLOCK;
CONN SCOTT/TIGER;
图10。5 解除“SCOTT”帐户锁定并连接数据库
5. 修改表空间配额
表空间配额用于限制用户对象在表空间上可占用的最大空间。如果没有为用户分配空间或分配空间为0,则该用户不能创建数据库对象,如创建表。
【例10。6】以“my_user1"用户登录数据库,创建“系部副本表”。执行情况如下:
图10.6 以“my_user1”用户创建表
【例10。7】以“SYSTEM”用户登录,修改用户“my_user1”的表空间配额,再以用户“my_user1"重新登录并创建“系部副本表”。代码和执行情况如下:
CONN SYSTEM/***
ALTER USER my_user1
DEFAULT TABLESPACE SYSAUX
QUOTA 5M ON SYSAUX;
图10。7修改表空间配额
10.2.4 监视用户
DBA可以通过动态性能视图来查看用户在数据库中的活动信息,限制用户对系统资源的使用,以保证数据库的运行安全。
【例10.8】查询动态性能视图V$SESSION,获取用户的会话信息。
图10.8 查看“V$SESSION”结构
SELECT SID,SERIAL#,LOGON_TIME,USERNAME,MACHINE
FROM V$SESSION;
图10.9获取用户的会话信息
其中:
● SID和SERIAL#是会话的唯一标识。
● LOGON_TIME表示用户登录数据库的时间.
● USERNAME表示登录数据库的用户帐户。
● MECHINE表示用户帐户登录的计算机名。
注意:如果SID和SERIAL#不同,而相应的USERNAME相同,表示该用户帐户与数据库建立了两个连接会话。
【例10。9】中止会话标识为“131,10”的数据库会话连接。
ALTER SYSTEM KILL SESSION '131,10';
图10.10终止用户的数据库会话
注意:如果用户的会话被中止后,其所占用的系统资源将被释放。
10.2.5 删除用户
删除用户操作一般由DBA用户来完成,如果以其他用户身份创建用户,要求该用户具有DROP USER的系统权限。删除用户后,Oracle会从数据字典中删除用户、方案及其所有方案对象。删除用户的基本语法如下:
DROP USER username[CASCADE];
其中:
● CASCADE:用来删除包含数据库对象的用户。
【例10.10】删除用户“my_user1”。代码如下:
DROP USER my_user1;
图10.11删除用户“my_user1”
注意:当前正在连接的用户是不能删除的。如果确定要删除该用户,首先应终止用户会话,再进行删除。
10.2.6 使用OEM管理用户
使用OEM也可以创建和管理用户,具体操作如下:
(1)登录OEM,选择“管理”属性页.单击“用户和权限"选项下的“用户"超链接,打开“用户”页,如图10.12所示.
图10。12“用户”页
(2)在“用户”页中可以对用户对象进行创建、编辑、查看和删除等操作。
(3)单击图10.12中“创建"按钮,打开“创建用户”页,分为“一般信息”、“角色”“系统权限”、“对象权限”等属性页。创建用户“A”,一般信息设置如图10。13所示。还可以设置其他相关参数,如权限分配:系统权限分配见图10.14;对象权限分配见图10。15。分配权限之后,单击“确定”按钮完成用户A的创建即可。
图10.13“创建用户”页
图10。14“分配系统权限”页
图10。15“分配对象权限"页
(4)在图10。12“搜索”项的“名称”文本框内输入要查看的用户名A.在搜索“结果”列表中单击要查看的用户名,打开“编辑用户"页如图10。16所示,可以看到用户定义信息,也可以对用户信息进行编辑.
图10。16“编辑用户"页
(5)在图10.12结果列表中选择要删除的用户名,单击“删除”按钮,进入“确认”页面,如果确定要删除用户,单击“是”按钮即可.
10.3 权限
权限(Privilege)是Oracle数据库定义的执行某些操作的能力。建立用户时,用户没有任何权限,也不能执行任何数据库操作。如果用户要执行特定的操作,必须授予其一定的权限.在Oracle数据库中,用户权限有两种:系统权限和对象权限。
10.3.1 系统权限
系统权限是指在系统级控制数据库的存取和使用的机制.如能否启动、停止数据库,是否能修改数据库属性等。它是针对非方案对象或某一类方案对象的某种操作的权限。
Oracle提供了多种系统权限,所有这些系统权限应该合理地授予不同管理层次的用户。我们可以通过DBA_SYS_PRIVS查看所有的系统权限。常用的系统权限如表10.1所示。
表10.1 常用的系统权限
系统权限
描 述
CREATE SESSION
连接到数据库
CREATE TABLE
创建表
CREATE ANY TABLE
在任何方案中建表
DROP TABLE
删除表
DROP ANY TABLE
删除任何方案中的表
CREATE VIEW
创建视图
CREATE PROCEDURE
创建存储过程
EXECUTE ANY PROCEDURE
执行任何方案中的存储过程
CREATE TRIGGER
创建触发器
CREATE SEQUENCE
创建序列
CREATE SYNONYM
创建同义词
CREATE USER
创建用户
DROP USER
删除用户
6. 授予系统权限
系统权限操作一般由DBA用户来完成,如果以其他用户操作,要求该用户具有相应的系统权限。授予系统权限的基本语法如下:
GRANT system_privilege TO username|role [WITH ADMIN OPTION];
其中:
WITH ADMIN OPTION表示被授权的用户、角色可以将相应的系统权限授予其他用户或角色。注意:UNLIMITED TABLESPACE不能授予角色。
【例10。11】以“SYSTEM”用户登录,创建名为“my_user"的用户帐户,并授予该用户系统权限。
创建用户“my_user”.代码如下:
CONN SYSTEM/*** AS SYSDBA
CREATE USER my_user
INDENTIFIED BY aaa;
授予“my_user"用户CREATE SESSION ,CREATE TABLE等系统权限。代码如下:
GRANT CREATE SESSION ,CREATE TABLE TO my_user
WITH ADMIN OPTION;
GRANT CREATE VIEW TO my_user;
图10。18“SYSTEM”用户授予“my_user”系统权限
【例10.12】以“my_user"用户登录,授予“my_user1”用户“CREATE SESSION"和“CREATE TABLE”系统权限。代码如下:
GRANT CREATE SESSION ,CREATE TABLE TO my_user1;
图10.19 “my_user"用户授予“my_user1”系统权限
注意:CREATE VIEW权限不能授予my_user1,因为在对my_user授权时没有使用WITH ADMIN OPTION选项。
7. 查看系统权限
通过数据字典视图DBA_SYS_PRIVS,可以查看所有用户或角色拥有的系统权限;通过数据字典视图USER_SYS_PRIVS,可以查看当前用户拥有的系统权限。
【例10。13】显示当前用户的系统权限。代码如下:
SELECT * FROM USER_SYS_PRIVS;
图10。20查看当前用户系统权限
8. 撤销系统权限
撤销系统权限操作一般由DBA用户来完成,撤销系统权限的基本语法如下:
REVOKE system_privilege FROM username|role;
【例10。14】撤销用户“my_user1"的连接数据库的权限,并进行测试.执行情况如图10.21所示。
REVOKE CREATE SESSION FROM my_user1;
CONN my_user1/abc;
图10。21 撤销用户“my_user1”权限并测试
10.3.2 对象权限
对象权限是指在对象级控制数据库的存取和使用的机制。如用户可以存取哪个方案中的对象,是否能对该对象进行查询等操作。它是针对特定方案对象的操作的权限.常用的对象权限如表10。2。
表10.2 常用的对象权限
对象权限
描 述
SELECT
进行数据查询
INSERT
进行数据插入
UPDATE
进行数据更新
DELETE
进行数据删除
EXECUTE
调用或执行相关数据库对象如包、存储过程等
ALTER
修改相关数据库对象,如表、序列等对象
Read
读取指定目录上的Bfile
Index
建立索引的权限
All
所有对象权限
9. 授予对象权限
创建对象的用户自动拥有该对象的所有对象权限,不需要授予。所以对象权限的设置实际上是对象所有者给其他用户提供操作该对象的某种权利的一种方法。
【例10.15】用户“SCOTT”授予“my_user”用户修改其方案对象“EMP”表的权限,并进行测试。执行情况如图10.22。
CONN SCOTT/***
GRANT ALTER ON EMP TO my_user;
CONN my_user/aaa
ALTER TABLE SCOTT.EMP ADD beizhu VARCHAR2(100);
图10。22授予对象权限
10. 查看对象权限
通过数据字典视图DBA_TAB_PRIVS,可以查看所有用户或角色拥有的对象权限;通过数据字典视图USER_TAB_PRIVS,可以显示当前用户拥有的对象权限.
【例10.16】显示当前用户的对象权限。代码如下:
COL GRANTOR FORMAT A10
COL OBJECT FORMAT A15
COL PRIVILEGE FORMAT A10
SELECT * FROM USER_TAB_PRIVS;
图10。23查看当前用户的对象权限
11. 撤销对象权限
撤销对象权限一般由对象所有者来完成,撤销对象权限的基本语法如下:
REVOKE object_priv ON object FROM username|role[CASCADE CONSTRAINTS];
【例10。17】撤销用户“my_user”对SCOTT。EMP的对象权限,并进行测试。执行情况如图10。24。
CONN SCOTT/***
REVOKE ALTER ON EMP FROM my_user ;
CONN my_user/aaa;
ALTER TABLE SCOTT.EMP ADD beizhu-1 VARCHAR2(100);
图10.24 撤销“my_user"用户对象权限
10.3.3 使用OEM管理权限
管理权限指的是对用户或角色进行权限的分配、查看或撤销。在OEM中进行权限管理实际上是用户或角色在OEM管理方式下进行权限管理,如图10.14及图10.15所示。
10.4 角色
角色(Role)是对权限集中管理的一种方法,是一组相关权限的组合,当用户获得某一角色时,它就继承了该角色拥有的全部权限。这对于多用户系统的权限管理是非常方便和有效的。
10.4.1 系统内置角色
Oracle提供了一些系统内置角色,用于执行特定的管理任务。可以通过DBA_SYS_PRIVS数据字典视图查看角色的拥有的权限。其基本信息如表10。3所示。
表10.3 系统内置角色
系统内置角色
描 述
CONNECT
具有CREATE(ALTER)SESSION 、 CREATE TABLE、 CREATE VIEW、CREATE SEQUENCE、CREATE CLUSTER、CREATE PUBLIC SYNONYM等权限
RECOURCE
具有CREATE TABLE、CREATE TYPE、CREATE SEQUENCE、CREATE PROCEDURE、CREATE CLUSTER、CREATE TRIGGER等权限
DBA
具有所有的系统权限和WITH ADMIN OPTION 选项
EXECUTE_CATALOG_ROLE
具有对系统内置PL/SQL包的EXECUTE权限
SELECT_CATALOG_ROLE
具有对数据字典的SELECT 权限
DELETE_CATALOG_ROLE
具有对系统审计表的DELETE权限
EXP_FULL_DATABASE
具有执行数据库导出操作的权限EXECUTE_CATALOG_ROLE、 SELECT_CATALOG_ROLE角色和大量系统权限
IMP_FULL_DATABASE
具有执行数据库导入操作的权限,包含了EXECUTE_CATALOG_ROLE、 SELECT_CATALOG_ROLE角色和大量系统权限
RECOVERY_CATALOG_OWNER
为恢复目录所有者提供系统权限。
10.4.2 自定义角色
12. 创建角色
自定义角色是在建立数据库后DBA用户创建的角色。创建角色的基本语法如下:
CREATE ROLE rolename NOT IDENTIFIED|IDENTIFIED BY role_password;
其中:
NOT IDENTIFIED:指创建非验证方式的角色,适合于公用角色或用户默认角色;
IDENTIFIED BY role_password:指创建验证方式的角色,适合于用户私有角色,激活角色时,必须提供口令。
【例10.18】创建一个公用角色“public_role”。代码如下:
CONN SYSTEM/***
CREATE ROLE public_role;
图10.25创建公用角色“Public_role”
13. 授权角色
初始创建的角色是空角色,没有任何权限.为角色授权的基本语法见10。3权限一节。
【例10。19】为公用角色“public_role”授权。代码如下:
GRANT CREATE SESSION TO public_role WITH ADMIN OPTION;
GRANT SELECT ,INSERT ,UPDATE ON 学生表 TO public_role;
图10.26为公用角色“Public_role”授权
14. 查看角色信息
可以通过数据字典视图USER_TAB_PRIVS来查看角色的拥有的权限.
【例10.20】查看角色“public_role”拥有的权限。代码如下:
SELECT * FROM USER_TAB_PRIVS WHERE GRANTEE=’PUBLIC_ROLE';
15. 给用户分配角色
可以将创建的角色分配给用户或其他角色。基本语法如下:
GRANT role_name TO user|role_name [WITH ADMIN OPTION ];
【例10。21】将角色“Public_role”分配给用户“my_user”。代码如下:
GRANT public_role TO my_user;
图10.27分配角色
16. 删除角色
如果不再需要某个角色,可以进行删除。其基本语法为:
DROP ROLE role_name;
10.4.3 使用OEM管理角色
使用OEM管理角色的步骤如下:
(1)登录OEM,选择“管理”属性页。单击“安全性”选项下“角色”超链接,打开“角色”页,如图10。28所示。
图10。28“角色”页
(2)在“角色”页中可以对角色对象进行创建、编辑、查看和删除等操作。
(3)单击图中“创建”按钮,打开“创建角色"页,分为“一般信息"、“角色”“系统权限”、“对象权限"等属性页,如图10.29所示,在此可以创建角色并设置其相关参数,如权限分配:系统权限分配见图10.30;对象权限分配见图10.31。完成角色权限的分配之后,单击“确定"按钮完成角色的创建即可。
图10。29“创建角色”页
图10.30“分配系统权限”页
图10。31“分配对象权限”页
(4)在图10.28中“搜索”项的“名称”文本框内输入要查看的角色名,单击“开始”按钮进行角色搜索.在搜索“结果”列表中单击要查看的角色名,打开“编辑角色"页,如图10。32所示,可以对角色信息进行修改。
图10。32“编辑角色”页
(5)在图10.28结果列表中选择要删除的角色名,单击“删除”按钮,进入“确认”页面,如果确定要删除角色,单击“是”按钮即可。
10.5 概要文件
概要文件(Profile)是描述如何使用系统资源(特别是CPU资源)管理数据库口令及其验证方式的文件。它也是Oracle安全管理的重要部分.下面主要介绍使用OEM管理概要文件,其命令格式可参考相关书籍。
17. 口令管理功能
● 用户帐户锁定
用户帐户锁定用于控制用户连续登录失败的最大次数.如果登录失败次数达到限制,那么Oracle会自动锁定该用户帐户.Oracle提供了两个选项用来强制用户定期改变口令。
FAILED_LOGIN_ATTEMPTS指定允许连续登录失败次数。
PASSWORD_LOCK_TIME 指定帐户被锁定的天数。
● 口令有效期和宽限期
口令有效期是指用户帐号口令的有效使用时间,口令宽限期是指在用户帐户口令到期后的宽限使用时间.默认情况下,用户口令是一直生效的,但出于口令安全的考虑,DBA用户应该强制用户更改口令.
PASSWORD_LIFE_TIME 指定口令有效期(单位:天)。
PASSWORD_GRACE_TEME指定口令宽限期(单位:天)。
● 口令历史
口令历史用于控制用户帐户口令的可重用次数或可重用时间。使用该选项Oracle会将口令修改信息放到数据字典中.当用户帐户修改口令时,Oracle会对新、旧口令比较,保证用户不会重用历史口令。
PASSWORD_REUSE_TIME 指定口令可重用的时间(单位:天)。
PASSWORD_REUSE_MAX 指定在重用口令之前口令需要改变的次数。
● 口令复杂性校验
口令复杂性校验是用来设置口令校验函数,强制用户使用复杂口令,以保证口令的有效性。这里可以用系统默认的口令校验函数,也可以自定义口令校验函数.
注意:口令校验函数必须建立在SYS方案中.
18. 系统资源管理
● 限制会话资源
限制会话资源是指限制会话在连接期间所占的系统资源,主要指CPU资源和内存资源。当超过会话资源限制时,Oracle不再对SQL语句做任何处理并返回错误信息。为了有效地利用系统资源,应对用户资源进行有效的限制。可以使用选项有:
CPU_PER_SESSION 指定用户在一次会话(SESSION)期间可占用的CPU时间(单位:秒/100)。
LOGICAL_READS_PER_SESSION 指定一个会话可以执行的最大逻辑读次数。
PRIVATE_SGA 指定用户私有的SGA区的大小,该选项只适用于共享服务器模式。
COMPOSITE_LIMIT 指定可以消耗的资源总额(单位:服务单元).该项设置和单独的资源限额是同时起作用的.只要会话占用的资源达到一个限制时,会话就会被终止.
● 限制调用资源
限制调用资源是指限制单条SQL语句可占用的最大资源。当执行SQL语句时,如果超出调用级资源限制,Oracle会自动终止语句处理,并回退改语句操作.可以使用选项有:
CPU_PER_CALL 指定每次调用可占用的最大CPU时间(单位:秒/100)。
LOGICAL_READS_PER_CALL 指定每次调用可以执行的最大逻辑读次数。
● 限制其他资源
除了会话资源和调用资源外,还可以限制的资源有:
SESSIONS_PER_USER 指定一个用户的最大并发会话数。
CONNECT_TIME 指定一个会话最大连接时间(单位:分钟)。
IDLE_TIME 指定一个会话最大空闲时间(单位:分钟)。
10.5.1 默认概要文件
在安装数据库时,Oracle会自动创建一个名为DEFAULT的默认概要文件。创建用户时必须为用户指定概要文件,如果不指定,则使用默认的概要文件,而默认的概要文件对资源没有任何限制.下面介绍如何查看和使用默认概要文件,基本步骤如下:
(1)登录OEM,选择“管理"属性页.单击“安全性”选项下“概要文件”,打开“概要文件”页,如图10.33所示.
图10.33“概要文件"页
(2)在上图“结果”列表中选择“DEFAULT”概要文件。单击该页中的“查看”按钮,打开“查看概要文件"页,在此可以查看“DEFAULT”概要文件的所有参数设置情况。如图10。34所示。
图10。34“查看概要文件"页
(3)单击图10.33中“编辑"按钮,打开“编辑概要文件”页,有“一般属性页”及“口令”两个属性页组成,如图10。35所示。
图10.35“编辑概要文件”页
(4)在“一般属性页”中,可以进行内核资源设置。
(5)在“口令”属性页中,可以进行用户帐户口令管理。
10.5.2 启动资源限制
如果要使用PROFILE管理资源,必须启动资源限制。
19. 在启动数据库前启动资源限制
在启动数据库前可使用初始化参数文件中的RESOURCE_LIMIT参数来启动资源限制,默认情况下取值为FALSE。把该参数的值设置为TRUE,即启动了资源限制。
20. 在数据库打开后启动资源限制
在数据库打开后,可使用SQL语句ALTER SYSTEM 来启动资源限制,将RESOURCE_LIMIT的值设置为TRUE,即启动了资源限制.
【例10。22】在数据库打开状态下,使用SQL命令启动资源限制。代码如下:
CONN SYS/*** @ Student AS SYSDBA
ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;
10.5.3 创建概要文件
DBA需要为不同类型的用户创建概要文件,用来限制用户对数据库或实例中的资源的使用。然后将其分配给用户。其中创建概要文件使用CREATE PROFILE命令,将概要文件分配给用户使用ALTER PROFILE命令.注意:DBA需要为不同类型的用户创建概要文件,不必为每个用户创建概要文件。
21. 创建概要文件
【例10.23】创建概要文件“my_profile”.基本步骤如下:
(1)在图10.33所示的页面中,单击“创建"按钮,打开“创建概要文件"页面,包括“一般信息”和“口令”两个属性页。
(2)在“一般信息"属性页中,在“名称”文本框中,输入“my_profile",其他参数通过相应参数后面的“手电筒”按钮进行设置。具体设置如图10.36所示:
图10。36“创建概要文件:一般信息"页
(3)单击图10。36中“口令”超链接,打开“口令”属性页,在该页中进行口令管理。具体参数设置如图10.37所示:
图10。37“创建概要文件:口令”页
(4)所有参数设置完毕后,单击页面中“确定"按钮即可。
22. 将概要文件分配给用户
【例10。24】将概要文件“my_profile"分配给用户“my_user”。基本步骤如下:
(1)登录OEM,选择“管理"属性页。单击“安全性"选项下“用户"超链接,打开“用户”页,如图10。12所示.
(2)在“用户"页中搜索并选择“my_user”用户,单击“编辑”按钮,打开“编辑用户"页,如图10.16所示。
(3)在“编辑用户”页面的“一般信息”属性页中,单击“概要文件”后面的“手电筒”按钮,选择“my_profile”概要文件。
(4)最后单击“应用”按钮即可。
10.5.4 修改和删除概要文件
23. 修改概要文件
在图10。33所示的页面中,在“搜索”项的“名称”文本框内输入要修改的概要文件名称。在搜索“结果"列表中直接单击相应的概要文件名或选择相应得概要文件单击“编辑”按钮,打开“编辑概要文件"页进行修改,最后单击“应用”按钮即可。
24. 删除概要文件
在图10.33所示的页面中,在“搜索”项的“名称"文本框内输入要删除的概要文件名称。在搜索“结果”列表中选择要删除的概要文件,单击“删除”按钮,进入“确认”页面,如果确定要删除概要文件,单击“是”按钮即可。
10.6 数据字典
数据字典是Oracle重要组成部分,它由一系列基表和视图组成,这些表和视图被存放在SYSTEM表空间中,所有者为SYS用户。其中,数据字典基表存储数据库基本信息,普通用户不能直接访问;数据字典视图是基于数据字典基表创建的视图,普通用户可以进行查询,并获取系统信息。
注意:维护和修改数据字典的操作是由系统自动完成的,用户对数据字典只能执行查询操作。
10.6.1 数据字典视图
数据字典视图相当于用户的一本Oracle参考手册,用来提供数据库系统信息。用户通过SELECT语句查询数据字典视图,以获得相关信息。数据字典视图分三类,不同权限的用户只能查询不同的数据字典视图。
25. ALL_视图
用来显示当前用户可访问的所有对象,包括当前用户方案的对象,还包括当前用户可访问的其他方案中的对象。
26. USER_视图
用来显示当前用户拥有的所有对象,只包括当前用户方案的所有对象。
27. DBA_视图
用来显示数据库中所有对象,包括所有方案所拥有的数据库对象.
DBA_视图:显示数据库中所有对象
ALL_视图:当前用户可访问的所有对象
USER_视图:
显示当前用户所拥有的所有对象
图10.38 数据字典视图
【例10。25】查询“Student”数据库的表空间信息。代码如下:
SELECT * FROM DBA_DATA_FILES;
注意:当前用户必须拥有DBA角色。
【例10。26】查询当前用户拥有的所有表对象的信息。代码如下:
SELECT * FROM USER_TABLES;
10.6.2 动态性能表和动态性能视图
在例程运行过程中,Oracle在数据字典中维护的一系列的虚拟表,用来记录数据库活动情况和参数,这些表就是动态性能表.这些表在例程启动时被创建,当例程消亡时,这些标被删除。
动态性能视图是Oracle自动在动态性能表上创建的视图,所有者为SYS用户, DBA通过查询动态性能视图来查看系统运行情况。所有动态性能视图都以V_$开头,Oracle为其创建了一系列的公用同义词,以V$开头.例如:V_$DATAFILE的同义词为V$DATAFILE
注意:大多数动态性能视图只能由特权用户和DBA用户访问。
【例10.27】通过动态性能视图V$INSTANCE,查看当前例程的相关信息.代码如下:
DESC V$INSTANCE;
图10。39查看当前例程的相关信息
COL HOST_NAME FORMAT A20
SELECT INSTANCE_NAME ,HOST_NAME ,STATUS FROM V$INSTANCE;
图10.40 查看当前例程的相关信息
10.6.3 查看数据字典视图信息
Oracle数据字典视图有上千个,要记住它们结构、定义信息几乎是不可能的,可使用DESC命令或OEM来查看相关信息。
28. 使用命令查看数据字典视图
【例10。28】查看数据字典视图DBA_TABLES的结构信息。代码如下:
DESC DBA_TABLES;
图10.41查看“DBA_TABLES"信息
29. 使用OEM查询数据字典视图
【例10.29】查看数据字典视图USER_TABLES的相关信息。步骤如下:
(1)以SYS用户,SYSDBA连接身份登录OEM,选择“管理"属性页。单击“方案”标题下“视图”超链接,打开“视图”页,如图10。42所示.
图10。42“视图”页
(2)在“方案"文本框中输入数据字典视图所有者“SYS”。在“对象名"文本框中输入要查询的数据字典视图名称“USER_TABLES”。
(3)单击“开始”按钮,开始搜索,出现搜索结果.
(4)在“结果”列表中,单击“USER_TABLES”数据字典视图,打开“编辑视图”页,可以看到该数据字典视图的定义信息,如图10.43所示.
图10.43“编辑视图”页
注意:常用的数据字典视图及动态性能视图见附录。
10.7 本章小结
保证数据库的安全性是数据库管理工作的重要内容,没有足够的安全性,可
展开阅读全文