dba_profiles

dba_profiles视图:
这个视图提供关于用户的概要文件的信息,是DBA管理用户资源分配的最好助手,如:控制session或sql能使用的CPU、控制用户的密码管理策略等。
数据库创建后,系统则存在名为DEFAULT的默认PROFILE,若不做特殊指定,创建用户时用户默认使用的PROFILE就是DEFAULT
查看视图dba_profiles可找出数据库中有哪些PROFILE
SQL> select distinct profile from dba_profiles;
PROFILE
----------
DEFAULT
                                                         VARCHAR2(40)
查找对应的default profile的内容:

SQL> select * from dba_profiles where profile=‘DEFAULT‘;

PROFILE    RESOURCE_NAME                    RESOURCE LIMIT
---------- -------------------------------- -------- ----------------------------------------
DEFAULT    COMPOSITE_LIMIT                  KERNEL   UNLIMITED    //
DEFAULT    SESSIONS_PER_USER                KERNEL   UNLIMITED //每个用户名所允许的并行会话数
DEFAULT    CPU_PER_SESSION                  KERNEL   UNLIMITED //一个会话一共可以使用的CPU时间,单位是百分之一秒
DEFAULT    CPU_PER_CALL                     KERNEL   UNLIMITED //一次SQL调用(解析、执行和获取)允许使用的CPU时间 
DEFAULT    LOGICAL_READS_PER_SESSION        KERNEL   UNLIMITED //限制会话对数据块的读取,单位是块 
DEFAULT    LOGICAL_READS_PER_CALL           KERNEL   UNLIMITED //限制SQL调用对数据块的读取,单位是块
DEFAULT    IDLE_TIME                        KERNEL   UNLIMITED //允许空闲会话的时间,单位是分钟
DEFAULT    CONNECT_TIME                     KERNEL   UNLIMITED //限制会话连接时间,单位是分钟
DEFAULT    PRIVATE_SGA                      KERNEL   UNLIMITED //限制会话在SGA中Shared Pool中私有空间的分配  
DEFAULT    FAILED_LOGIN_ATTEMPTS            PASSWORD 10  //指定锁定用户的登录失败次数

DEFAULT    PASSWORD_LIFE_TIME               PASSWORD UNLIMITED //密码可以被使用的天数,单位是天,默认值180天
DEFAULT    PASSWORD_REUSE_TIME              PASSWORD UNLIMITED //密码可重用的间隔时间(结合PASSWORD_REUSE_MAX)
DEFAULT    PASSWORD_REUSE_MAX               PASSWORD UNLIMITED //密码的最大改变次数(结合PASSWORD_REUSE_TIME)
DEFAULT    PASSWORD_VERIFY_FUNCTION         PASSWORD NULL  
DEFAULT    PASSWORD_LOCK_TIME               PASSWORD UNLIMITED //超过错误尝试次数后,用户被锁定的天数,默认1天
DEFAULT    PASSWORD_GRACE_TIME              PASSWORD UNLIMITED //当密码过期之后还有多少天可以使用原密码

参数解释
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 }

删除PROFILE:
drop profile [资源文件名] [CASCADE] ;
若创建的PROFILE已经授权给了某个用户,使用CASCADE级联收回相应的限制,收回限制信息后将以系统默认的PROFILE对该用户进行限制。

设置PROFILE参数的生效时间
1、用户所有拥有的PROFILE中有关密码的限制立即生效,不受限制。从这个可看出Oracle对用户密码的重视程度。
2、用户所有拥有的PROFILE中有关资源的限制与resource_limit参数的设置有关,当为TRUE时生效,当为FALSE时(默认值)设置任何值都无效。
SQL> show parameter resource_limit
NAME                 TYPE        VALUE
-------------------- ----------- -------
resource_limit       boolean     FALSE

修改profile:
alter profile default RESOURCE_NAME 1000;
如:alter profile default limit failed_login_attempts 1000;
alter profile default limit failed_login_attempts unlimited;

我们可以手动的创建一个profile,并指定限制:
SQL> create profile frank_profile limit
  2  SESSIONS_PER_USER  5
  3  IDLE_TIME  2 
  4  FAILED_LOGIN_ATTEMPTS 5;
Profile created.
SQL> alter user frank profile frank_profile;
User altered.

设置PROFILE参数的生效时间
1、用户所有拥有的PROFILE中有关密码的限制立即生效,不受限制。从这个可看出Oracle对用户密码的重视程度。
2、用户所有拥有的PROFILE中有关资源的限制与resource_limit参数的设置有关,当为TRUE时生效,当为FALSE时(默认值)设置任何值都无效。
SQL> show parameter resource_limit
NAME                 TYPE        VALUE
-------------------- ----------- -------
resource_limit       boolean     FALSE
特别的,该参数的设置和profile中的密码策略无关,只影响resource参数。

时间: 2024-10-13 13:26:42

dba_profiles的相关文章

oracle如何修改单个用户密码永不过期

Oracle的密码过期规则是用Profile来管理的,系统默认只有一个Profile(DEFAULT),该profile的密码过期规则为180天:而所有的用户都使用该DEFAULT的profile,所以如果修改DEFAULT的过期规则会影响所有的用户.如果你想修改某个用户的密码让其永不过期,则需要新建一个profile,修改该profile的过期规则为无限期,这样该用户的过期规则会改变,并且不会影响到其他用户. 首先查看用户的proifle是哪个,一般是default: sql>SELECT u

user_role用户_角色

查询所有的用户:select * from dba_users; 创建新用户:CREATE USER "RSC" PROFILE "DEFAULT" IDENTIFIED BY "*******" DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" QUOTA UNLIMITED ON "USERS" ACCOUNT UNLOCK

Oracle 11g数据库详解(2015-1-18更新)

Oracle 11g数据库详解 整理者:高压锅 QQ:280604597 Email:[email protected] 大家有什么不明白的地方,或者想要详细了解的地方可以联系我,我会认真回复的 1   简介 数据库操作主要有以下几步: 1.  启动.停止数据库 2.  连接.断开数据库 3.  创建.修改.删除数据库用户 4.  表空间 5.  新建.修改.删除表 6.  查询.插入.修改.删除表数据 7.  新建.修改.删除视图 8.  新建.修改.删除存储过程 9.  新建.修改.删除触发

Oracle 的密码策略,你知道多少?

今天突然有客户问我一个问题,数据库要添加一个监控用户,想做一个会话数的限制,这里做了一个小测试,平日维护的时候也需要关注一下数据库的资源限制. <roidb1:orcl1:/home/oracle>$sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Mon Sep 18 18:16:19 2017 Copyright (c) 1982, 2013, Oracle.  All rights reserved. Conne

o3.oracle安装完后的一些简单设置参考

SQL>startup; SQL> select * from v$version;                   //查看版本号 SQL> SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';     //查看指定概要文件(如default)的密码有效期设置 SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD

orale用户密码过期处理

使用具有管理权限的用户登录 1.查看用户的proifle是哪个,一般是default: SELECT username,PROFILE FROM dba_users; 2.查看指定概要文件(如default)的密码有效期设置: sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; 或者:sql>SELECT * FROM dba_profiles WH

Oracle设置用户密码永不过期

1.查看用户的profile是那个,一般是default: select username, profile from dba_users; 2.查看指定概要文件(如default)的密码有效期设置: select * from dba_profiles where profile = 'DEFAULT' and resource_name = ‘PASSWORD_LIFE_TIME'; 3.将密码有效期由默认180天修改成“无限制”: ALTER PROFILE DEFAULT LIMIT P

Oracle里面的用户smsdb无法登录 LOCKED(TIMED)

创建的一个用户smsdb ,查看状态LOCKED(TIMED) 解锁后,conn smsdb/password 仍然报错,然后又被锁 :最后发现是错误登陆次数达到oracle限制的10次:导致后续无法登陆操作.网上找的解决方法如下: 看看dba_users中该用户的状态等信息 SQL>select account_status,lock_date,profile from dba_users where username='SMSDB';发现昨天才锁定的,帐号状态为"LOCKED(TIME

4、Oracle用户、权限、角色

1.用户创建.修改.删除 创建用户语法: CREATE USER user_name ----创建用户名称 IDENTIFIED BY password ----用户口令 [ DEFAULT TABLESPACE default_tablespace | ----指定默认表空间 TEMPORARY TABLESPACE temp_tablespace    | ----指定临时表空间 PROFILE profile ----用户的资源文件,默认default QUOTA [ integer K