一、profile目的:
oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用create profile命令创建一个profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内。具体管理内容有:cpu的时间、i/o的使用、idle time(空闲时间)、connect time(连接时间)、并发会话数量、口令机制等。
二、条件:
创建profile必须要有create profile的系统权限。为用户指定资源限制,必须:
1.动态地使用alter system或使用初始化参数resource_limit使资源限制生效。该改变对密码资源无效,密码资源总是可用。
sql> show parameter resource_limit
sql> alter system set resource_limit=true;
2.使用create profile创建一个定义对数据库资源进行限制的profile。
例: create profile one_session limit sessions_per_user 1;(创建一个名为one_session的profile,设置限制数量为1)
3.使用create user 或alter user命令把profile分配给用户。
例: alter user test profile one_session;(分配给test用户)
三、查询profile
可通过dba_profiles视图查看一下系统中默认都有哪些profile
四、创建 profile 的语法如下:
create profile profile
limit { resource_parameters 对资源的限制
| password_parameters 对密码的限制
}… ;
<resource_parameters>
{{ sessions_per_user 每个用户名并行会话数
| cpu_per_session 每会话可用的cpu时间,单位0.01秒
| cpu_per_call 一次sql调用(解析、执行和获取)允许的cpu时间
| connect_time 会话连接时间(分钟)
| idle_time 会话空闲时间(分钟),超出将断开
| logical_reads_per_session
| logical_reads_per_call
| composite_limit “组合打法”
}
{ integer | unlimited | default }
| private_sga
{ integer [ k | m ] | unlimited | default }
}
< password_parameters >
{{ failed_login_attempts 被锁定前的试错次数
| password_life_time 密码使用天数,默认180天
| password_reuse_time 密码可重用的间隔时间(结合password_reuse_max)
| password_reuse_max 密码最大改变次数(结合password_reuse_time)
| password_lock_time 超过试错次数后,被锁定的天数,默认1天
| password_grace_time 密码过期后还可使用原密码的天数
}
{ expr | unlimited | default }
| password_verify_function
{ function | null | default }
}