ORACLE中关于profile的总结

来源:互联网 发布:淘宝有各地小姐资料吗 编辑:程序博客网 时间:2024/05/18 03:10

(一)profile的作用

1,ORACLE的PROFILE文件是限制数据库用户使用的资源的一种手段,包括对系统资源的限制和对用户密码的管理策略。其中,对密码的管理限制,始终是处于激活状态,而对系统资源的限制要看系统参数resource_limit 的设置,如果是 false,profile 是不生效的。

a,查看resource_limit的值:show parameter resource_limit

 
b,设置resource_limit为true:alter system set resource_limit=true scope=both;

c,一个用户只能分配一个PROFILE.如果要同时管理用户的口令和资源,那么在建立PROFILE时应该同时指定口令和资源选项. 

(二)使用profile

2,查看系统的默认PROFILE

a,通过dba_profiles视图查看一下系统中默认都有哪些PROFILE
数据库创建以后,系统中只会存在一个名为DEFAULT的默认PROFILE,在用户创建之后,如果不做特殊指定,
每个用户的PROFILE都会默认的使用个默认的PROFILE。
select distinct profile from dba_profiles;

b,全面查看一下这个PROFILE都包含哪些限制定义


select * from dba_profiles;

PROFILE RESOURCE_NAME RESOURCE LIMIT
---------- -------------------------------- -------- -----------------
DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITED
DEFAULT SESSIONS_PER_USER KERNEL UNLIMITED
DEFAULT CPU_PER_SESSION KERNEL UNLIMITED
DEFAULT CPU_PER_CALL KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_CALL KERNEL UNLIMITED
DEFAULT IDLE_TIME KERNEL UNLIMITED
DEFAULT CONNECT_TIME KERNEL UNLIMITED
DEFAULT PRIVATE_SGA KERNEL UNLIMITED
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10
DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL
DEFAULT PASSWORD_LOCK_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_GRACE_TIME PASSWORD UNLIMITED

16 rows selected.

3,结论
通过上面的查看,可以得到这个系统默认的PROFILE “DEFAULT”的配置信息只对密码的错误尝试次数做了限制
(最多可以错误输错10次密码),如果我们启用了PROFILE(下面有介绍如何启用和停止PROFILE),默认的限制只有这些。
如果想要改变限制条件,有两种方法:第一种方法是可以对这个默认的PROFILE做个性化的调整;
第二种方法是再重新定制一个新的PROFILE满足新的需求。


4,详细解析以上参数的含义:

参数解释
(1)对数据库资源做限制
{ { SESSIONS_PER_USER 每个用户名所允许的并行会话数
| CPU_PER_SESSION 一个会话一共可以使用的CPU时间,单位是百分之一秒
| CPU_PER_CALL 一次SQL调用(解析、执行和获取)允许使用的CPU时间
| CONNECT_TIME 限制会话连接时间,单位是分钟
| IDLE_TIME 允许空闲会话的时间,单位是分钟
| LOGICAL_READS_PER_SESSION 限制会话对数据块的读取,单位是块
| LOGICAL_READS_PER_CALL 限制SQL调用对数据块的读取,单位是块
| COMPOSITE_LIMIT “组合打法”
} { integer | UNLIMITED | DEFAULT }
| PRIVATE_SGA 限制会话在SGA中Shared Pool中私有空间的分配 { size_clause | UNLIMITED | DEFAULT}
}
(2)对密码做限制
{ { 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 }
}





5,对创建PROFILE的标准语法做一下“解剖麻雀”(更多细节可以参考Oracle的官方文档)
a,创建PROFILE的语法如下:
CREATE PROFILE profile
LIMIT { resource_parameters 对资源的限制
| password_parameters 对密码的限制
}...
;


修改参数的值ALTER PROFILE <profile_name> LIMIT <profile_item_name> <value>;;
例如:alter profile default limit password_life_time 1;

 

6,查看profile分配给了哪些user

select username,profile from dba_users;

7,删除PROFILE:drop profile [资源文件名] [CASCADE] ;

若创建的PROFILE已经授权给了某个用户,使用CASCADE级联收回相应的限制,收回限制信息后将以系统默认的PROFILE对该用户进行限制。













 
 


0 0