您的位置:首页 > 数据库 > Oracle

关于oracle的profiles

2012-08-14 20:46 176 查看

关于oracle的profiles

profiles文件是口令和资源限制的配置集合,包括CPU的时间、I/O的使用、空闲时间、连接时间、并发会话数量、密码策略等对于资源的使用 profile可以做到控制会话级别或语句调用级别。oracle自带的默认好多是不限制的,用户创建时都会被指定这个PROFILE。

了解和配置参照如下:

一.sqlplus连接

C:\Users\prdadm>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Fri Feb 24 16:23:23 2012

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

二.了解当前用户的profile配置文件,如果没有修改过,你的所有用户profile都是Default;

SQL> select username,profile from dba_user

USERNAME PROFILE

------------------------------ ---------

SAPSR3 DEFAULT

OUTLN DEFAULT

TSMSYS DEFAULT

DIP DEFAULT

ORACLE_OCM DEFAULT

DBSNMP DEFAULT

三.查看系统本身的profile的配置参数都有哪些?

select * from dba_profiles where profile='default';

----

COMPOSITE_LIMIT UNLIMITED 一次会话总的消耗资源不超过的服务单元

SESSIONS_PER_USER UNLIMITED 用户并发会话数不限制

CPU_PER_SESSION UNLIMITED 定义了每个SESSION占用的CPU的时间

CPU_PER_CALL UNLIMITED一次 每个语句调用消耗cpu时间不限制

LOGICAL_READS_PER_SESSION UNLIMITED 一次会话读取逻辑数据块不限制

LOGICAL_READS_PER_CALL UNLIMITED

IDLE_TIME UNLIMITED

CONNECT_TIME UNLIMITED 连接会话超时不限制

PRIVATE_SGA UNLIMITED

FAILED_LOGIN_ATTEMPTS 10

PASSWORD_LIFE_TIME UNLIMITED

PASSWORD_REUSE_TIME UNLIMITED

PASSWORD_REUSE_MAX UNLIMITED

PASSWORD_VERIFY_FUNCTION NULL

PASSWORD_LOCK_TIME UNLIMITED

PASSWORD_GRACE_TIME UNLIMITED

你看见这个默认的profile对于密码的限制是很少的,特别令你失望的是居然没有密码复杂度要求(比如要有大小写数字、密码长度要求等)。当然oracle不会这么弱智,只是需要我们去启用;

四.启用oracle的密码复杂度验证函数

SQL>@c:\oracle\PRD\102\RDBMS\ADMIN\utlpwdmg.sql

运行成功后,用select * from dba_profiles就可以显示出来了;

PASSWORD_VERIFY_FUNCTION verify_function

这个oracle默认verify_function()函数,要求口令密码最小长度4、不能和用户名相同、至少有一个字母、数字和特殊字母,旧密码和新密码至少有三位不同。如果你觉得这个要求还太低,那你就创建自己复杂的验证函数。

五.我们这个是修改了Default,通常我们是不希望修改默认的profile,如果还原回去

ALTER PROFILE DEFAULT LIMIT

COMPOSITE_LIMIT UNLIMITED

.....

六.既然Default最好不要修改,那自己创建一个玩玩

CREATE PROFILE my_profile LIMIT

SESSIONS_PER_USER UNLIMITED

CPU_PER_SESSION UNLIMITED

CPU_PER_CALL 6000

CONNECT_TIME 60

LOGICAL_READS_PER_SESSION DEFAULT

LOGICAL_READS_PER_CALL 6000

COMPOSITE_LIMIT 6000000

PRIVATE_SGA 66K 一次会话在SGA中不能分配超过66k的空间

FAILED_LOGIN_ATTEMPTS 6 密码尝试次数

PASSWORD_LIFE_TIME 60 密码生存期

PASSWORD_REUSE_TIME 60 密码重用周期

PASSWORD_REUSE_MAX 5 密码重用前需要改变的次数

PASSWORD_LOCK_TIME 1/24 密码错误锁定时间

PASSWORD_GRACE_TIME 10 密码过期缓冲时间天数

PASSWORD_VERIFY_FUNCTION verify_function密码复杂度校验

七.将profile分配给用户

我们前面提到,新建用户机场默认profile,如果我们创建的proflie不分配给需要的用户,对这个用户还是不起作用

如果是在新建用户就分配

CREATE USER username ...profile myprofile;

如果是已经创建好的用户则:

ALTER USER username PROFILE myprofile;

八.如果没有的profile,我们可以删除profile;

建 起来困难,删除就容易多了,drop profile my_profile一下子搞定,如果已经分配给用户,需要先修改用户配置,或者使用DROP PROFILE my_profile CASCADE,一旦PROFILE被删除,用户被自动加载DEFAULT PROFILE
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: