Oracle数据库profile参数表限制用户资源和密码的管理

Oracle数据库profile参数表限制用户资源和密码的管理

此部分整理了oracle数据库中profile参数表的信息和相关配置过程,profile是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default的profile。当建立用户没有指定profile选项时,那么oracle就会将default分配给用户。

profile概述

Profile是Oracle提供的一种针对用户资源使用和密码管理的策略配置。借助Profile,可以实现特定用户资源上的限制和密码管理规则的应用。在实际的应用中,Profile可以帮助我们实现很多应用层面比较困难实现的需求。
Profile是Oracle安全策略的一个组成部分。

默认情况下,用户连接数据库,形成会话,使用CPU资源和内存资源是没有限制的。在一些应用并发量很大,特别是多个应用部署在同一个数据库服务器上的时候,依据应用对企业重要程度的部分,CPU和内存资源的分配一定是有所侧重的。

此外,用户的密码管理,可以是一个比较复杂的工作。比如,用户锁定之后,多长时间被自动释放、密码生命周期、登录尝试次数等等。

这两个方面的问题,都可以借助Profile去解决。Profile相当于一个命名的安全策略集合,其中规定了资源使用的限制和密码使用的规则。Profile定义之后,是可以应用到每个用户上,对每个用户的安全活动进行限制。

profile的查看、创建、修改等

  1. 查看数据库profile资源限制参数

    12C之前的版本查看的信息如下:

     SQL> set line 200;
     SQL> col RESOURCE_NAME for a25
     SQL> col PROFILE for a20 
     SQL> select * from dba_profiles  where PROFILE='DEFAULT';
     
     PROFILE              RESOURCE_NAME             RESOURCE LIMIT
     -------------------- ------------------------- -------- ----------------------------------------
     DEFAULT              COMPOSITE_LIMIT           KERNEL   UNLIMITED		指定一个会话的总的资源消耗,以service units单位表示
     DEFAULT              SESSIONS_PER_USER         KERNEL   UNLIMITED		指定限制用户的并发会话的数目
     DEFAULT              CPU_PER_SESSION           KERNEL   UNLIMITED		指定会话的CPU时间限制,单位为百分之一秒
     DEFAULT              CPU_PER_CALL              KERNEL   UNLIMITED		指定一次调用(解析、执行和提取)的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)中所允许分配的最大空间,以字节为单位
     DEFAULT              FAILED_LOGIN_ATTEMPTS     PASSWORD 10			指定在帐户被锁定之前所允许错误密码尝试登陆的的最大次数
     DEFAULT              PASSWORD_LIFE_TIME        PASSWORD 180			指定同一密码所允许使用的天数
     
     PROFILE              RESOURCE_NAME             RESOURCE LIMIT
     -------------------- ------------------------- -------- ----------------------------------------
     DEFAULT              PASSWORD_REUSE_TIME       PASSWORD UNLIMITED		指可以重复使用多长时间之前的密码
     DEFAULT              PASSWORD_REUSE_MAX        PASSWORD UNLIMITED		指的是当前密码可以被重用之前,必须进行密码修改的次数
     DEFAULT              PASSWORD_VERIFY_FUNCTION  PASSWORD NULL			该字段允许将复杂的PL/SQL密码验证脚本做为参数传递到create
     DEFAULT              PASSWORD_LOCK_TIME        PASSWORD 1			指定登陆尝试失败次数到达后帐户的锁定时间,以天为单位
     DEFAULT              PASSWORD_GRACE_TIME       PASSWORD 7			指定宽限天数,数据库发出警告到登陆失效前的天数。如果数据库密码在这中间没有被修改,则过期会失效
     
     16 rows selected.
    

    12C版本和之后版本的查看信息如下:

     SQL> col LIMIT for a25
     SQL> select * from dba_profiles;
     
     PROFILE              RESOURCE_NAME             RESOURCE LIMIT                     COM INH IMP
     -------------------- ------------------------- -------- ------------------------- --- --- ---
     DEFAULT              COMPOSITE_LIMIT           KERNEL   UNLIMITED                 NO  NO  NO
     DEFAULT              SESSIONS_PER_USER         KERNEL   UNLIMITED                 NO  NO  NO
     DEFAULT              CPU_PER_SESSION           KERNEL   UNLIMITED                 NO  NO  NO
     DEFAULT              CPU_PER_CALL              KERNEL   UNLIMITED                 NO  NO  NO
     DEFAULT              LOGICAL_READS_PER_SESSION KERNEL   UNLIMITED                 NO  NO  NO
     DEFAULT              LOGICAL_READS_PER_CALL    KERNEL   UNLIMITED                 NO  NO  NO
     DEFAULT              IDLE_TIME                 KERNEL   UNLIMITED                 NO  NO  NO
     DEFAULT              CONNECT_TIME              KERNEL   UNLIMITED                 NO  NO  NO
     DEFAULT              PRIVATE_SGA               KERNEL   UNLIMITED                 NO  NO  NO
     DEFAULT              FAILED_LOGIN_ATTEMPTS     PASSWORD 10                        NO  NO  NO
     DEFAULT              PASSWORD_LIFE_TIME        PASSWORD 180                       NO  NO  NO
     
     PROFILE              RESOURCE_NAME             RESOURCE LIMIT                     COM INH IMP
     -------------------- ------------------------- -------- ------------------------- --- --- ---
     DEFAULT              PASSWORD_REUSE_TIME       PASSWORD UNLIMITED                 NO  NO  NO
     DEFAULT              PASSWORD_REUSE_MAX        PASSWORD UNLIMITED                 NO  NO  NO
     DEFAULT              PASSWORD_VERIFY_FUNCTION  PASSWORD NULL                      NO  NO  NO
     DEFAULT              PASSWORD_LOCK_TIME        PASSWORD 1                         NO  NO  NO
     DEFAULT              PASSWORD_GRACE_TIME       PASSWORD 7                         NO  NO  NO
     DEFAULT              INACTIVE_ACCOUNT_TIME     PASSWORD UNLIMITED                 NO  NO  NO
     ORA_STIG_PROFILE     COMPOSITE_LIMIT           KERNEL   DEFAULT                   NO  NO  NO
     ORA_STIG_PROFILE     SESSIONS_PER_USER         KERNEL   DEFAULT                   NO  NO  NO
     ORA_STIG_PROFILE     CPU_PER_SESSION           KERNEL   DEFAULT                   NO  NO  NO
     ORA_STIG_PROFILE     CPU_PER_CALL              KERNEL   DEFAULT                   NO  NO  NO
     ORA_STIG_PROFILE     LOGICAL_READS_PER_SESSION KERNEL   DEFAULT                   NO  NO  NO
     
     PROFILE              RESOURCE_NAME             RESOURCE LIMIT                     COM INH IMP
     -------------------- ------------------------- -------- ------------------------- --- --- ---
     ORA_STIG_PROFILE     LOGICAL_READS_PER_CALL    KERNEL   DEFAULT                   NO  NO  NO
     ORA_STIG_PROFILE     IDLE_TIME                 KERNEL   15                        NO  NO  NO
     ORA_STIG_PROFILE     CONNECT_TIME              KERNEL   DEFAULT                   NO  NO  NO
     ORA_STIG_PROFILE     PRIVATE_SGA               KERNEL   DEFAULT                   NO  NO  NO
     ORA_STIG_PROFILE     FAILED_LOGIN_ATTEMPTS     PASSWORD 3                         NO  NO  NO
     ORA_STIG_PROFILE     PASSWORD_LIFE_TIME        PASSWORD 60                        NO  NO  NO
     ORA_STIG_PROFILE     PASSWORD_REUSE_TIME       PASSWORD 365                       NO  NO  NO
     ORA_STIG_PROFILE     PASSWORD_REUSE_MAX        PASSWORD 10                        NO  NO  NO
     ORA_STIG_PROFILE     PASSWORD_VERIFY_FUNCTION  PASSWORD ORA12C_STIG_VERIFY_FUNCTI NO  NO  NO
                                                             ON
     
     
     PROFILE              RESOURCE_NAME             RESOURCE LIMIT                     COM INH IMP
     -------------------- ------------------------- -------- ------------------------- --- --- ---
     ORA_STIG_PROFILE     PASSWORD_LOCK_TIME        PASSWORD UNLIMITED                 NO  NO  NO
     ORA_STIG_PROFILE     PASSWORD_GRACE_TIME       PASSWORD 5                         NO  NO  NO
     ORA_STIG_PROFILE     INACTIVE_ACCOUNT_TIME     PASSWORD 35                        NO  NO  NO
     
     34 rows selected.
    

    新增了INACTIVE_ ACCOUNT_TIME参数,此参数是12C后加入的。从12.2开始Oracle会自动将不活跃(超过一定时间没有操作)的用户锁住,上表中的意思是超过35天没有登录便会锁住用户。

  2. 创建数据库profile

     SQL> CREATE PROFILE PASSWORD_profile LIMIT
     COMPOSITE_LIMIT UNLIMITED
     SESSIONS_PER_USER UNLIMITED
     CPU_PER_SESSION UNLIMITED
     CPU_PER_CALL UNLIMITED
     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 1
     PASSWORD_GRACE_TIME 30 ;
    
    
     SQL> select * from dba_profiles;   //查看创建后的profile
     
     PROFILE              RESOURCE_NAME             RESOURCE LIMIT
     -------------------- ------------------------- -------- ----------------------------------------
     PASSWORD_PROFILE     COMPOSITE_LIMIT           KERNEL   UNLIMITED
     DEFAULT              COMPOSITE_LIMIT           KERNEL   UNLIMITED
     PASSWORD_PROFILE     SESSIONS_PER_USER         KERNEL   UNLIMITED
     DEFAULT              SESSIONS_PER_USER         KERNEL   UNLIMITED
     PASSWORD_PROFILE     CPU_PER_SESSION           KERNEL   UNLIMITED
     DEFAULT              CPU_PER_SESSION           KERNEL   UNLIMITED
     PASSWORD_PROFILE     CPU_PER_CALL              KERNEL   UNLIMITED
     DEFAULT              CPU_PER_CALL              KERNEL   UNLIMITED
     PASSWORD_PROFILE     LOGICAL_READS_PER_SESSION KERNEL   UNLIMITED
     DEFAULT              LOGICAL_READS_PER_SESSION KERNEL   UNLIMITED
     PASSWORD_PROFILE     LOGICAL_READS_PER_CALL    KERNEL   UNLIMITED
     
     PROFILE              RESOURCE_NAME             RESOURCE LIMIT
     -------------------- ------------------------- -------- ----------------------------------------
     DEFAULT              LOGICAL_READS_PER_CALL    KERNEL   UNLIMITED
     PASSWORD_PROFILE     IDLE_TIME                 KERNEL   UNLIMITED
     DEFAULT              IDLE_TIME                 KERNEL   UNLIMITED
     PASSWORD_PROFILE     CONNECT_TIME              KERNEL   UNLIMITED
     DEFAULT              CONNECT_TIME              KERNEL   UNLIMITED
     PASSWORD_PROFILE     PRIVATE_SGA               KERNEL   UNLIMITED
     DEFAULT              PRIVATE_SGA               KERNEL   UNLIMITED
     PASSWORD_PROFILE     FAILED_LOGIN_ATTEMPTS     PASSWORD 10
     DEFAULT              FAILED_LOGIN_ATTEMPTS     PASSWORD 10
     PASSWORD_PROFILE     PASSWORD_LIFE_TIME        PASSWORD UNLIMITED
     DEFAULT              PASSWORD_LIFE_TIME        PASSWORD 180
     
     PROFILE              RESOURCE_NAME             RESOURCE LIMIT
     -------------------- ------------------------- -------- ----------------------------------------
     PASSWORD_PROFILE     PASSWORD_REUSE_TIME       PASSWORD UNLIMITED
     DEFAULT              PASSWORD_REUSE_TIME       PASSWORD UNLIMITED
     PASSWORD_PROFILE     PASSWORD_REUSE_MAX        PASSWORD UNLIMITED
     DEFAULT              PASSWORD_REUSE_MAX        PASSWORD UNLIMITED
     PASSWORD_PROFILE     PASSWORD_VERIFY_FUNCTION  PASSWORD NULL
     DEFAULT              PASSWORD_VERIFY_FUNCTION  PASSWORD NULL
     PASSWORD_PROFILE     PASSWORD_LOCK_TIME        PASSWORD 1
     DEFAULT              PASSWORD_LOCK_TIME        PASSWORD 1
     PASSWORD_PROFILE     PASSWORD_GRACE_TIME       PASSWORD 30
     DEFAULT              PASSWORD_GRACE_TIME       PASSWORD 7
     
     32 rows selected.		
    
  3. 修改数据库profile

     SQL> alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS  UNLIMITED;	 				//修改指定profile参数文件内容
     
     Profile altered.
    
     SQL> alter user KFWWU profile PASSWORD_profile;   //修改某个用户的profile
     
     User altered.
    
  4. 查看数据库用户使用的profile情况

     SQL> select USERNAME,ACCOUNT_STATUS,LOCK_DATE,CREATED,PROFILE from dba_users;
     
     USERNAME                       ACCOUNT_STATUS                   LOCK_DATE CREATED   PROFILE
     ------------------------------ -------------------------------- --------- --------- --------------------
     MGMT_VIEW                      OPEN                                       26-OCT-17 DEFAULT
     SYS                            OPEN                                       26-OCT-17 DEFAULT
     WGORACLE                       OPEN                                       10-JAN-19 DEFAULT
     KFWWU                          OPEN                                       27-OCT-17 PASSWORD_PROFILE
     OUTLN                          EXPIRED                                    26-OCT-17 DEFAULT
     SYSTEM                         EXPIRED                                    26-OCT-17 DEFAULT
     DBSNMP                         EXPIRED                                    26-OCT-17 DEFAULT
     SYSMAN                         EXPIRED                                    26-OCT-17 DEFAULT
     APPQOSSYS                      EXPIRED & LOCKED                 26-OCT-17 26-OCT-17 DEFAULT
     WMSYS                          EXPIRED & LOCKED                 26-OCT-17 26-OCT-17 DEFAULT
     DIP                            EXPIRED & LOCKED                 26-OCT-17 26-OCT-17 DEFAULT
     
     USERNAME                       ACCOUNT_STATUS                   LOCK_DATE CREATED   PROFILE
     ------------------------------ -------------------------------- --------- --------- --------------------
     ORACLE_OCM                     EXPIRED & LOCKED                 26-OCT-17 26-OCT-17 DEFAULT
     
     12 rows selected.
    

结尾

至此,oracle数据库profile相关总结完成。总的来说profile相关知识比较简单,只需要记住涉及到此内容的dba_ users表和dba_profiles表就行了。结合知道的相关参数内容做具体的修改和适用。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值