oracle 安全管理
概要文件(profile)是一种对用户能够使用的数据库和系统资源进行限制的文件。把概要文件分配给用户,oracle就可以对每个用户可以使用的资源进行限制。oracle中有一个默认的概要文件DEFAULT,其中默认概要文件中对所有的资源都是无限制的,即意味着分配了默认概要文件的用户,可以无限制的使用数据库和系统资源,这显然是一种非常不好的策略。所有我们需要建立一些专们的概要文件,限制用户所使用的资源,实现oracle的安全管理!注意,创建用户是若没有分配概要文件,oracle自动把默认的概要文件分配给他。oracle可以在两个层次上限制用户对系统资源的使用,一种是在会话级上,另一种是在调用级上。在会话级上,如果用户在一个会话时间段内超过了资源限制参数的最大值,oracle将停止当前的操作,回退未提交的事务,并断开连接;若在调用级上,如果用户在一条sql语句执行中超过了资源参数的限制,oracle将终止并回退该语句的执行但当前事务中已执行的所有语句不受影响,且用户会话仍然连接。
下面介绍与概要文件相关的操作,包括创建,修改,分配,删除和查看概要文件信息。
一。创建概要文件
创建概要文件用 create profile profilenamelimit......语句,其中profile指定要创建的是概要文件profile,就像其它的创建文件一样,指定了创建的文件类型(如createtable,createuser等);profilename是要创建的概要文件的名称,limit是关键字,表限制的意思,其后跟很多资源限制参数。如果不清楚资源限制参数的可以上网查,或者用我提供的如下方法:
1.登录oem;
2.选择 安全性----概要文件;
3.右键创建,在出现的创建概要文件对话框中选择“显示sql”把创建概要文件的sql语句复制即可,粘贴在sql*plusworksheet等上并修改参数的取值即可;
以下是创建概要文件的sql语法(详细并对参数进行了说明):
CREATE PROFILE "" LIMIT
CPU_PER_SESSION DEFAULT 用户在一次数据库会话期间占用cpu的时间总量单位百之一秒
CPU_PER_CALL DEFAULT---调用级上执行操作占用cpu的时间总量 单位百分之一秒
CONNECT_TIME DEFAULT----用户和数据库连接的总时间,单位分钟,超过时连接断开;
IDLE_TIME DEFAULT---一个会话可以连续空闲的时间,单位分钟。
SESSIONS_PER_USER DEFAULT
LOGICAL_READS_PER_SESSION DEFAULT
LOGICAL_READS_PER_CALL DEFAULT
PRIVATE_SGA DEFAULT
COMPOSITE_LIMIT DEFAULT
FAILED_LOGIN_ATTEMPTSDEFAULT 限制用户登录数据库失败的次数。
PASSWORD_LOCK_TIME DEFAULT
PASSWORD_GRACE_TIMEDEFAULT
PASSWORD_LIFE_TIME DEFAULT
PASSWORD_REUSE_MAX DEFAULT
PASSWORD_REUSE_TIME DEFAULT
PASSWORD_VERIFY_FUNCTION DEFAULT
也可以直接在oem图形化界面中创建概要文件,在此不在介绍。
2.修改概要文件:
alter profile profilelimit........参数与上面的一样,某个参数没有写时,会为该资源参数分配默认值即default;
3.删除概要文件:
drop profile profilename;其中cascade表示在删除该概要文件的同时,从用户中收回该概要文件,并且oracle会自动把默认的概要文件default分配给该用户。如果已经将概要文件分配给用户,但在删除是没有使用cascade,则删除失败。
4.分配概要文件:
一。在创建用户时指定概要文件
create user username profile profilename
identified by password.......
二。在用户创建好了之后为其分配概要文件,(包括重新分配的情况)
alter user username profile profilename;
5.查看概要文件的信息:
dba_profiles------描述了所有概要文件的基本信息;
user-password-limits----描述了在概要文件中的口令管理策略(主要对分配该概要文件的用户而言)
user-resource-limits-----描述了资源限制参数信息。
dba_users---描述了数据库中用户的信息,包括为用户分配的概要文件。
如:(1)select * from dba_profiles;
PROFILE RESOURCE_NAME RESOURCE LIMIT
-------------------------------------------------------------- ------------------------------------------------
DEFAULT COMPOSITE_LIMIT KERNELUNLIMITED
TEST COMPOSITE_LIMIT KERNEL DEFAULT
DEFAULTFAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED
TEST FAILED_LOGIN_ATTEMPTS PASSWORDDEFAULT
DEFAULT SESSIONS_PER_USER KERNEL UNLIMITED
TEST SESSIONS_PER_USERKERNEL 3
DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED
。。。。
(2)select * from dba_profiles where profile='DEFAULT' andresource_type='KERNEL';//单引号内必须大写。其中resource_type='KERNEL'表示资源类型为资源限制参数,若resource_type='PASSWORD',则资源类型为口令参数。profile表示概要文件名。
PROFILE RESOURCE_NAME RESOURCE LIMIT
-------------------------------------------------------------- ------------------------------------------------
DEFAULT COMPOSITE_LIMIT KERNELUNLIMITED
DEFAULT SESSIONS_PER_USER KERNEL UNLIMITED
DEFAULTCPU_PER_SESSION KERNEL UNLIMITED
DEFAULT CPU_PER_CALL KERNEL UNLIMITED
。。。。。
(3)select * from dba_profiles where resource_type='PASSWORD';
PROFILE RESOURCE_NAME RESOURCE LIMIT
-------------------------------------------------------------- ------------------------------------------------
DEFAULT FAILED_LOGIN_ATTEMPTSPASSWORD UNLIMITED
TEST FAILED_LOGIN_ATTEMPTS PASSWORD DEFAULT
DEFAULTPASSWORD_LIFE_TIME PASSWORD UNLIMITED
TEST PASSWORD_LIFE_TIME PASSWORDDEFAULT
DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED
........
(4).查询当前用户的口令管理参数:
select * from user_password_limits;
RESOURCE_NAME LIMIT
------------------------------------------------------------------------
FAILED_LOGIN_ATTEMPTSUNLIMITED
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_REUSE_TIME UNLIMITED
。。。。
(5)查询当前用户的资源限制参数
select * from user_resource_limits;
RESOURCE_NAME LIMIT
------------------------------------------------------------------------
COMPOSITE_LIMITUNLIMITED
SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
(6)通过dba_users数据字典获取某个用户的概要文件。
select profile from dba_users whereusername='SCOTT';PROFILE
------------------------------
DEFAULT
已选择 1 行
页:
[1]