oracle profile 口令和资源限制的配置集合

oracle profile 口令和资源限制的配置集合

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

查看状态

  • 查看当前open用户

    select username,account_status,expiry_date,profile from dba_users;
    
  • 在系统表user$中,可以查看用户的密码(PASSWORD)和状态(ASTATUS)

    select user#, name, password,  status from user$ where name in ('SYSTEM', 'SCOTT');    (?)
    select user#, name, password,  astatus from user$ where name in ('SYSTEM', 'SCOTT');   (?)
    
  • 锁定用户

    alter user user_name account lock;
    --  解锁
    alter user user_name account unlock;
    
  • 查看是否锁定

    select  username, account_status from dba_users where username='USERNAME';
    
  • 查看用户密码到期时间

    select username,account_status,expiry_date from dba_users;
    

dba_profiles配置文件:

  • 资源类:(RESOURCE_TYPE=KERNEL)

    Session_per_user:

    ​ 指定限制用户的并发会话的数目。

    Cpu_per_session:

    ​ 指定会话的CPU时间限制,单位为百分之一秒。

    Cpu_per_call:

    ​ 指定一次调用(解析、执行和提取)的CPU时间限制,单位为百分之一秒。

    Connect_time:

    ​ 指定会话的总的连接时间,以分钟为单位。

    Idle_time:

    ​ 指定会话允许连续不活动的总的时间,以分钟为单位,超过该时间,会话将断开。

    Logical_reads_per_session:

    ​ 指定一个会话允许读的数据块的数目,包括从内存和磁盘读的所有数据块。

    Logical_read_per_call:

    ​ 指定一次执行SQL(解析、执行和提取)调用所允许读的数据块的最大数目。

    Private_sga:

    ​ 指定一个会话可以在共享池(SGA)中所允许分配的最大空间,以字节为单位。

    Composite_limit:

    ​ 指定一个会话的总的资源消耗,以service units单位表示。

  • 密码类(RESOURCE_TYPE=PASSWORD)含义说明:

    Failed_login_attempts:

    ​ 指定在帐户被锁定之前所允许错误密码尝试登陆的的最大次数。

    Password_life_time:

    ​ 指定同一密码所允许使用的天数。

    Password_reuse_time:

    ​ 密码不能重用前的天数

    password_reuse_max:

    ​ 指的是当前密码可以被重用之前,必须进行密码修改的次数(与原密码相同)。

    Password_lock_time:

    ​ 指定登陆尝试失败次数到达后帐户的重试时间,以天为单位。

    Password_grace_time:

    ​ 指定宽限天数,数据库发出警告到登陆失效前的天数。如果数据库密码在这中间没有被修改,则过期会失效。

    Password_verify_function:

    ​ 该字段允许将复杂的PL/SQL密码验证脚本做为参数传递到create profile语句。Oracle数据 库提供了一个默认的脚本,但是自己可以创建自己的验证规则或使用第三方软件验证。 对 Function名称,指定的是密码验证规则的名称,指定为Null则意味着不使用密码验证功能。

    数据库密码区分大小写的设置

    ​ SEC_CASE_SENSITIVE_LOGON = TRUE;

    创建自定义profile

    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   
    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;
    

    查询自定义profile

    select * from dba_profiles where profile = 'MY_PROFILE';
    

    让用户使用自定义的profile

    alter user user_name profile my_profile;
    

    查询用户的profile

    select du.username, dp.*
    	from dba_users du, dba_profiles dp
    	where du.username = 'USER_NAME' and dp.profile = du.profile;
    

    查询用户使用的哪个profile

    select username profile from dba_users where username='USER_NAME';
    

    修改profile

    alter profile DEFAULT limit PASSWORD_LIFE_TIME UNLIMITED;    -- 默认策略
    alter profile MY_PROFILE limit PASSWORD_LIFE_TIME UNLIMITED;    -- 自定义策略
    

    删除并回收已经授予的profile

    drop profile my_profile cascade;
    

    用户所有拥有的PROFILE中有关密码的限制立即生效,不受限制。从这个可看出Oracle对用户密码的重视程度。

    用户所有拥有的PROFILE中有关资源的限制与resource_limit参数的设置有关,当为TRUE时生效,当为FALSE时(默认值)设置任何值都无效。

  • 修改密码复杂度

    位置 D:\oracle\oracle\app\oracle\product\11.2.0\server\rdbms\admin

    不确定步骤

    alter system set resource_limit = true;
    

    在本地找到utlpwdmg.sql脚本并执行

    执行脚本会创建verify_function和verify_function_11G两个函数

    12c版本自带三个函数(也可以自己创建)

    ORA12C_STIG_VERIFY_FUNCTION
    ORA12C_STRONG_VERIFY_FUNCTION
    ORA12C_VERIFY_FUNCTION
    

    设置profile的password_verify_function参数为verify_function;

    alter profile profile_name limit password_verify_function verify_function;
    

    取消设置password_verify_function

    alter profile profile_name limit password_verify_function null;
    

    数据库密码区分大小写的设置

    SEC_CASE_SENSITIVE_LOGON = TRUE;
    

密码策略需求

本来是给所有用户批量修改,现在给特定用户修改策略

n天未修改密码进行锁定,会不会影响生产

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值