Oracle profile 用户资源限制 说明(一)

2014-11-24 17:55:54 · 作者: · 浏览: 2

一. 说明


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