PROFILE是口令、资源限制的命令集合。建立oracle数据库时,oracle会自动建立名为DEFAULT的PROFILE,初始的DEFAULT没有进行任何口令和资源限制。
1.使用PROFILE 管理口令
账户锁定
FAILED_LOGIN_ATTEMPTS:用于指定连续登录的最大失败次数。
PASSSWORD_LOCK_TIME:用于指定账户被锁定的天数
示例如下:
CREATE PROFILE lock_account LIMIT
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME 10;
ALTER USER user1 PROFILE lock_account;
口令有效期和终止期
PASSWORD_LIFE_TIME :指定口令有效期
PASSWORD_GRACE_TIME :用于指定口令宽限期
示例:
CREATE PROFILE password_life LIMIT
PASSWORD_LIFE_TIME 10
PASSWORD_GRACE_TIME 2;
口令历史
口令历史用于控制账户口令的可重用次数或可重用时间。使用口令历史选项后,oracle会将口令修改信息保存到数据字典中。这样,当修改口令时,oracle会对新旧口令进行比较,一确保用户不会重用过去已经用过的口令。
PASSWORD_REUSE_TIME :用于指定口令可重用时间
PASSWORD_REUSE_MAX:用于指定在重用口令之前口令需改变的次数。
示例:
CREATE PROFILE password_history LIMIT
PASSWORD_LIFE_TIME 10 PASSSWORD_GRACE_TIME 2
PASSWORD_REUSE_TIME 10
PASSWORD_REUSE_MAX UNLIMITED;
2. 管理资源
限制会话资源是指限制会话在连接期间所占用的总计资源。当超过会话资源限制时,oracle不会对SQL语句进行任何处理并返回错误信息。当连接到数据库时,oracle会为用户进程分配相应的服务器进程;当用户发出SQL语句时,服务器进程会执行该SQL操作。为了有效地利用CPU和内存资源,必须对用户资源进行适当限制。为了限制会话资源,可以使用一下选项:
CPU_PER_SESSION :用于指定每个会话可占用的最大CPU时间。
LOGICAL_READS_PER_SESSION :用于指定会话的最大逻辑读取次数
COMPOSITE_LIMIT:用于指定会话的总资源消耗
示例:
CREATE PROFILE session_limit LIMIT
CPU_PER_SESSION 5000 LOGICAL_READS_PER_SESSION 100;
限制调用资源
限制调用资源是指限制单挑SQL语句可占用的最大资源。当执行SQL语句时,如果解析执行或提取阶段超出调用级资源权限,oracle将自动终止语句处理,并回退该语句操作。oracle提供了一下两个限制调用资源的选项:
CPU_PER_CALL: 用于限制每次调用可占用的最大的CPU时间。(单位,百分之一秒)
LOGICAL_READS_PER_CALL:用于限制每次调用的最大逻辑I/O次数。
限制其他资源
还可以设置其他资源限制。选项如下:
SESSION_PER_USER:用于指定每个用户的最大并发会话个数
CONNECT_TIME: 用于指定会话的最大连接时间(单位:分钟)
IDLE_TIME:用于指定会话的最大空闲时间(单位:分钟)