一. 说明
Purpose
Use the CREATE PROFILE statement to create a profile, which is a set of limits on database resources. If you assign the profile to a user, then that user cannot exceed these limits.
Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内。
Prerequisites
To create a profile, you must have the CREATE PROFILE system privilege.
To specify resource limits for a user, you must:
(1). Enable resource limits dynamically with the ALTER SYSTEM statement or with the initialization parameter RESOURCE_LIMIT. This parameter does not apply to password resources. Password resources are always enabled.
(2). Create a profile that defines the limits using the CREATE PROFILE statement
(3). Assign the profile to the user using the CREATE USER or ALTER USER statement
其他一些参数的说明,参考上面贴的连接里的官网信息。
二. PROFILE 管理
Proflie是口令限制,资源限制的命名集合.建立oracle数据库时,oracle会自动建立名为DEFAULT的PROFILE,初始化的DEFAULT没有进行任何口令和资源限制.
使用PROFILE有以下一些主要事项:
1,建立PROFILE时,如果只设置了部分口令或资源限制选项,其他选项会自动使用默认值(DEFAULT的相应选项)
2,建立用户时,如果不指定PROFILE选项,oracle会自动将DEFAULT分配给相应的数据库用户.
3,一个用户只能分配一个PROFILE.如果要同时管理用户的口令和资源,那么在建立PROFILE时应该同时指定口令和资源选项.
4,使用PROFILE管理口令时,口令管理选项总是处于被激活状态,但如果使用PROFILE管理资源,必须要激活资源限制.
2.1 条件:
创建profile必须要有CREATE PROFILE的系统权限。
为用户指定资源限制,必须:
1.动态地使用alter system或使用初始化参数resource_limit使资源限制生效。该改变对密码资源无效,密码资源总是可用。
SQL> show parameter resource_limit
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
resource_limit boolean FALSE
SQL> alter system set resource_limit=true;
System altered.
SQL> show parameter resource_limit
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
resource_limit boolean TRUE
SQL>
2.使用create profile创建一个定义对数据库资源进行限制的profile。
SQL> create profile test
2 limit
3 idle_time 30 --单位分钟
4 connect_time 480;
Profile created.
CONNECT_TIME Specify the total elapsed time limit for a session, expressed in minutes.
IDLE_TIME Specify the permitted periods of continuous inactive time during a session, expressed in minutes. Long-running queries and other operations are not subject to this limit.
3.使用create user 或alter user命令把profile分配给用户。
SQL> create user qs identified by qs profile test; --创建用户时指定profile
User created.
SQL> alter user qs profile test; --修改用户的profile
User altered.
SQL>
SQL> alter user dinya profile default; --还原默认值
4.修改PROFILE
SQL> alter profile test limit idle_time 60;
Profile altered.
5.删除PROFILE
SQL> drop profile test;
SQL> drop profile test cascade;
注意:
1.已分配的profile,删除时必须加cascade选项。
2.必须要有create profile 权限,才能创建profile。
3.DEFAULT为默认profile,不能删除。
6.信息获取
可以从dba_profiles表和dba_users表查询profile的信息,如:
SQL> set wrap off;
SQL> select profile from dba_users where username='QS';
PROFILE
------------------------------
TEST
SQL> select * from dba_profiles where profile='TEST';
PROFILE RESOURCE_NAME RESOURCE LIMIT
------------------------------ -------------------------------- -------- -------
TEST COMPOSITE_LIMIT KERNEL DEFAULT
TEST SESSIONS_PER_USER KERNEL DEFAU