概要文件和用户
一次只能向用户分配一个概要文件
概要文件的用途:控制资源消耗量 管理账户状态和口令失效
实施口令安全功能 两次设置密码不能相同 设置至少包含大小写字母 口令的复杂性验证通过函数来进行
创建口令概要文件
提供口令验证函数: VERIFY_FUNCTION_11G
VERIFY_FUNCTION_11G 函数可确保口令满足一下条件:
至少包含8个字符
与用户名 带有一个数字的用户以及逆序的用户名不同
与数据库名以及带有一个数字的数据库名不同
至少包含一个字母和一个数字的字符串
与之前的口令至少有三个字母不相同
SQL> desc dba_profiles
Name Null? Type
----------------------------------------- -------- ----------------------------
PROFILE NOT NULL VARCHAR2(30)
RESOURCE_NAME NOT NULL VARCHAR2(32)
RESOURCE_TYPE VARCHAR2(8)
LIMIT VARCHAR2(40)
SQL> select distinct profile from dba_profiles;
PROFILE
------------------------------------------------------------
MONITORING_PROFILE
DEFAULT
SQL> select count(*) from dba_profiles;
COUNT(*)
----------
32
SQL> SELECT RESOURCE_NAME,LIMIT FROM DBA_PROFILES WHERE PROFILE='DEFAULT';
RESOURCE_NAME LIMIT
-------------------- --------------------
COMPOSITE_LIMIT UNLIMITED
SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL UNLIMITED
LOGICAL_READS_PER_SE UNLIMITED
SSION
LOGICAL_READS_PER_CA UNLIMITED
LL
IDLE_TIME UNLIMITED
RESOURCE_NAME LIMIT
-------------------- --------------------
CONNECT_TIME UNLIMITED
PRIVATE_SGA UNLIMITED
FAILED_LOGIN_ATTEMPT 10
S
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_VERIFY_FUNC NULL
TION
RESOURCE_NAME LIMIT
-------------------- --------------------
PASSWORD_LOCK_TIME 1
PASSWORD_GRACE_TIME 7
16 rows selected.
创建概要文件: 先查在创
SQL> CREATE PROFILE P1 LIMIT
2 COMPOSITE_LIMIT UNLIMITED
3 SESSIONS_PER_USER 3
4 CPU_PER_SESSION UNLIMITED
5 CPU_PER_CALL UNLIMITED
6 LOGICAL_READS_PER_SESSION UNLIMITED
7 LOGICAL_READS_PER_CALL UNLIMITED
8 IDLE_TIME UNLIMITED
9 CONNECT_TIME UNLIMITED
10 PRIVATE_SGA UNLIMITED
11 FAILED_LOGIN_ATTEMPTS 10
12 PASSWORD_LIFE_TIME UNLIMITED
13 PASSWORD_REUSE_TIME UNLIMITED
14 PASSWORD_REUSE_MAX UNLIMITED
15 PASSWORD_VERIFY_FUNCTION NULL
16 PASSWORD_LOCK_TIME 1
17 PASSWORD_GRACE_TIME 7;
Profile created.
SQL> desc dba_users
Name Null? Type
----------------------------------------- -------- ----------------------------
USERNAME NOT NULL VARCHAR2(30)
USER_ID NOT NULL NUMBER
PASSWORD VARCHAR2(30)
ACCOUNT_STATUS NOT NULL VARCHAR2(32)
LOCK_DATE DATE
EXPIRY_DATE DATE
DEFAULT_TABLESPACE NOT NULL VARCHAR2(30)
TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30)
CREATED NOT NULL DATE
PROFILE NOT NULL VARCHAR2(30)
INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(30)
EXTERNAL_NAME VARCHAR2(4000)
PASSWORD_VERSIONS VARCHAR2(8)
EDITIONS_ENABLED VARCHAR2(1)
AUTHENTICATION_TYPE VARCHAR2(8)
SQL> select username,profile from dba_users where username='SCOTT';
USERNAME
------------------------------------------------------------
PROFILE
------------------------------------------------------------
SCOTT
DEFAULT
新创建的P1,SCOTT并不会去用它,这时候需要修改
SQL> ALTER USER SCOTT PROFILE P1;
User altered.
SQL> SELECT USERNAME,PROFILE FROM DBA_USERS WHERE USERNAME='SCOTT';
USERNAME
------------------------------------------------------------
PROFILE
------------------------------------------------------------
SCOTT
P1
最多有3个并发
一旦创建了密码的复杂性验证;修改密码就不能简单密码了
[oracle@edrsr12p1 ~]$ cd $ORACLE_HOME
[oracle@edrsr12p1 dbhome_1]$ ls
apex config dc_ocm EMStagePatches_orcl inventory ldap nls oracore plsql slax ucp
assistants crs deinstall has j2ee lib oc4j oraInst.loc precomp sqldeveloper uix
bin csmig demo hs javavm log odbc ord racg sqlj utl
ccr css diagnostics ide jdbc md olap oui rdbms sqlplus wwg
cdata ctx dv install jdev mesg ons owb relnotes srvm xdk
cfgtoollogs cv edrsr12p1.us.oracle.com_orcl install.platform jdk mgw OPatch owm root.sh sysman
clone dbs emcli instantclient jlib network opmn perl scheduler timingframework
[oracle@edrsr12p1 dbhome_1]$ cd rdbms
[oracle@edrsr12p1 rdbms]$ ls
admin audit demo doc install jlib lib log mesg public xml
[oracle@edrsr12p1 rdbms]$ cd admin
[oracle@edrsr12p1 admin]$ ls -l |grep utlpwdmg.sql
-rw-r--r-- 1 oracle oinstall 11555 Aug 13 2006 utlpwdmg.sql 需要调用的脚本
SQL>@?/rdbms/admin/utlpwdmg 执行脚本
SQL>ALTER PROFILE P1 LIMIT
PASSWORD_VERIFY_FUNCTION VERIFY_FUNCTION_11G; 创建了密码的复杂性