用户管理之profile
导语:
profiles文件是口令和资源限制的配置集合,包括CPU的时间、I/O的使用、空闲时间、连接时间、并发会话数量、密码策略等对于资源的使用profile可以做到控制会话级别或语句调用级别。oracle自带的默认(default文件)好多是不限制的,用户创建时都会被指定这个PROFILE。
基本
-
PROFILE的管理内容:
- CPU的时间
- I/O的使用
- IDLE TIME(空闲时间)
- CONNECT TIME(连接时间)
- 并发会话数量
- 口令机制: -
DEFAULT PROFILE:
- 所有的用户创建时都会被指定这个PROFILE
- DEFAULT PROFILE的内容为空,无限制
profile参数
profile 可以看成是一种对象,一种策略,一种配置。
Oracle用表格 的方式管理profile中的内容。该试图(表)为dba_profiles 可以直接通过该视图查询profile的内容。
比如,你想查看有几个profile,可以这样查看:select profile from dba_profiles group by profile;
一个profile的配置在视图中有多个行,分别表示不同的参数。这些参数大致分为两类:
- 参数:Resource_parameter(RESOURCE=KERNEL)部分:
Composite_limit:指定一个会话的总的资源消耗,以service units单位表示。Oracle数据库以有利的方式计算
Connect_time:指定会话的总的连接时间,以分钟为单位。
Cpu_per_call:指定一次调用(解析、执行和提取)的CPU时间限制,单位为百分之一秒。
Cpu_per_session:指定会话的CPU时间限制,单位为百分之一秒。
Idle_time:指定会话允许连续不活动的总的时间,以分钟为单位,超过该时间,会话将断开。
Logical_read_per_call:指定一次执行SQL(解析、执行和提取)调用所允许读的数据块的最大数目。
Logical_reads_per_session:指定一个会话允许读的数据块的数目,包括从内存和磁盘读的所有数据块。
Private_sga:指定一个会话可以在共享池(SGA)中所允许分配的最大空间,以字节为单位。
Session_per_user:指定限制用户的并发会话的数目。
tips:在用户的层面对系统资源的分配。
- 参数:PASSWORD_PARAMETER(RESOURCE=PASSWORD)部分:
FAILED_LOGIN_ATTEMPTS :当连续登陆失败次数达到该参数指定值时,用户被加锁;经过DBA解锁(或PASSWORD_LOCK_TIME天)后可继续使用
PASSWORD_LIFE_TIME :口令的有效期(天),默认为UNLIMITED
PASSWORD_LOCK_TIME :帐户因FAILED_LOGIN_ATTEMPTS锁定时,加锁天数
PASSWORD_GRACE_TIME :口令修改的宽限期(天)
PASSWORD_REUSE_TIME :口令被修改后原有口令隔多少天被重新使用,默认为UNLIMITED
PASSWORD_REUSE_MAX :口令被修改后原有口令被修改多少次才允许被重新使用。
PASSWORD_VERIFY_FUNCTION :口令效验函数
举例1:
create profile lock_account limit failed_login_attempts 3 password_lock_time 2;
alter user scott profile lock_account;
指定scott这个用户最多只能尝试3次登陆,锁定时间为2天
举例2:
create profile myprofile limit password_life_time 10 password_grace_time 2;
alter user test profile myprofile;
该用户每隔10天要修改自己的登陆密码,宽限期为2天.
举例3:
CREATE PROFILE password_history LIMIT
password_life_time 10 ##用户每隔10天要修改自己的登陆密码
password_grace_time 2 ##宽限期为2天
password_reuse_time 10; ##指定口令可重用时间即10天后就可以重用
tips: 给账户(用户)解锁: alter user scott account unlock;
如何管理一个PROFILE
-
开启profile管理
当需要设置资源限制时,必须设置数据库系统启动参数RESOURCE_LIMIT,此参数默认值为FALSE
可以使用如下命令来启动当前资源限制:
alter system set RESOURCE_LIMIT=true;
当需要以后启动时也启动限制,必须在init.ora中设置
RESOURCE_LIMIT=true
-
创建一个profile
CREATE PROFILE app_user2 LIMIT
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LIFE_TIME 60
PASSWORD_REUSE_TIME 60
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_VERIFY_FUNCTION verify_function
PASSWORD_LOCK_TIME 1/24
PASSWORD_GRACE_TIME 10;
- 将profile分配给某个用户
alter user scott profile lock_account;
- 修改profile中的参数
ALTRE PROFILE app_user2 LIMIT
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LIFE_TIME 60;
- 删除profile
概述:当不需要某个profile文件时,可以删除该文件。
drop profile password_history [casade]
注意:文件删除后,用这个文件去约束的那些用户通通也都被释放了。加了casade,就会把级联的相关东西也给删除掉。
生效
修改profile之前的session不会生效