Oracle中的profile参数及用法是什么

53次阅读
没有评论

共计 5897 个字符,预计需要花费 15 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 Oracle 中的 profile 参数及用法是什么,文章内容质量较高,因此丸趣 TV 小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

一、profile 功能
     oracle 系统中的 profile 是用来对用户所能使用的数据库资源进行限制的。
   
    二、profile 参数详解    
             (1) 查看数据库资源限制参数

               SQL select * from dba_profiles;

PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT

—————————— ——————————– ——– ——————–

DEFAULT                        COMPOSITE_LIMIT                  KERNEL   UNLIMITED

DEFAULT                        SESSIONS_PER_USER                KERNEL   UNLIMITED

DEFAULT                        CPU_PER_SESSION                  KERNEL   UNLIMITED

DEFAULT                        CPU_PER_CALL                     KERNEL   UNLIMITED

DEFAULT                        LOGICAL_READS_PER_SESSION        KERNEL   UNLIMITED

DEFAULT                        LOGICAL_READS_PER_CALL           KERNEL   UNLIMITED

DEFAULT                        IDLE_TIME                        KERNEL   UNLIMITED

DEFAULT                        CONNECT_TIME                     KERNEL   UNLIMITED

DEFAULT                        PRIVATE_SGA                      KERNEL   UNLIMITED

DEFAULT                        FAILED_LOGIN_ATTEMPTS            PASSWORD 10

DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD UNLIMITED

DEFAULT                        PASSWORD_REUSE_TIME              PASSWORD UNLIMITED

DEFAULT                        PASSWORD_REUSE_MAX               PASSWORD UNLIMITED

DEFAULT                        PASSWORD_VERIFY_FUNCTION         PASSWORD NULL

DEFAULT                        PASSWORD_LOCK_TIME               PASSWORD UNLIMITED

DEFAULT                        PASSWORD_GRACE_TIME              PASSWORD UNLIMITED

MONITORING_PROFILE             COMPOSITE_LIMIT                  KERNEL   DEFAULT

MONITORING_PROFILE             SESSIONS_PER_USER                KERNEL   DEFAULT

MONITORING_PROFILE             CPU_PER_SESSION                  KERNEL   DEFAULT

MONITORING_PROFILE             CPU_PER_CALL                     KERNEL   DEFAULT

MONITORING_PROFILE             LOGICAL_READS_PER_SESSION        KERNEL   DEFAULT

MONITORING_PROFILE             LOGICAL_READS_PER_CALL           KERNEL   DEFAULT

MONITORING_PROFILE             IDLE_TIME                        KERNEL   DEFAULT

MONITORING_PROFILE             CONNECT_TIME                     KERNEL   DEFAULT

MONITORING_PROFILE             PRIVATE_SGA                      KERNEL   DEFAULT

MONITORING_PROFILE             FAILED_LOGIN_ATTEMPTS            PASSWORD UNLIMITED

MONITORING_PROFILE             PASSWORD_LIFE_TIME               PASSWORD DEFAULT

MONITORING_PROFILE             PASSWORD_REUSE_TIME              PASSWORD DEFAULT

MONITORING_PROFILE             PASSWORD_REUSE_MAX               PASSWORD DEFAULT

MONITORING_PROFILE             PASSWORD_VERIFY_FUNCTION         PASSWORD DEFAULT

MONITORING_PROFILE             PASSWORD_LOCK_TIME               PASSWORD DEFAULT

MONITORING_PROFILE             PASSWORD_GRACE_TIME              PASSWORD DEFAULT

32 rows selected.

Unlimited:分配该 profile 的用户对资源使用无限制,当使用密码参数时,unlimited 意味着没有对参数加限制。

Default:指定为 default 意味着忽略对 profile 中的一些资源限制,Default profile 初始定义对资源不限制,可以通过 alter profile 命令来改变。

     (2)参数详解

      Resource_parameter 部分:

 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 单位表示。Oracle 数据库以有利的方式计算 cpu_per_session,                                                connect_time,logical_reads_per_session 和 private-sga 总的 service units


Password_parameter 部分:

 Failed_login_attempts:指定在帐户被锁定之前所允许尝试登陆的的最大次数。

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

 Password_reuse_time 和 password_reuse_max:这两个参数必须互相关联设置,password_reuse_time 指定了密码不能重用前的天                                                                             数,而 password_reuse_max 则指定了当前密码被重用之前密码改变的次数。两个参                                                                           数都必须被设置为整数。

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

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

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


    三、使用 profile    

         (1)创建 profile,命令如下:

CREATE PROFILE profile profile_name
LIMIT { resource_parameters
 | password_parameters
 }
 [ resource_parameters
 | password_parameters
 ]... ;


         (2) profile 分配给用户,命令如下:
             alter  user  user_name  profile  profile_name;

    四、举例
     
         (1) 创建一个用户 u1

       SQL show user;
               USER is SYS
       SQL create user u1 identified by u1;
                 User created.
       SQL grant create session to u1;
               Grant succeeded.

         (2)创建 profile 为 p1 用来限制用户尝试登陆失败 2 次后会被锁定
               SQL create profile p1 limit FAILED_LOGIN_ATTEMPTS 2;
                           Profile created.

         (3) 把创建的 p1 分配给 u1
                SQL alter user u1 profile p1;
                     User altered.

         (4)尝试验证
         SQL select USERNAME,ACCOUNT_STATUS,LOCK_DATE,PROFILE from dba_users where username= U1
                   USERNAME  ACCOUNT_STATUS    LOCK_DATE    PROFILE
                   ———- ——————————– ——— ——————————  // 看 u1 用户的状态没有被锁
                         U1                     OPEN                   P1

         SQL conn u1/a1;
                    ERROR:
                    ORA-01017: invalid username/password; logon denied
                   Warning: You are no longer connected to ORACLE.
                                                                                                                 // 尝试两次失败登陆
         SQL conn u1/a1;
                   ERROR:
                     ORA-01017: invalid username/password; logon denied

        SQL select USERNAME,ACCOUNT_STATUS,LOCK_DATE,PROFILE from dba_users where USERNAME= U1
                 USERNAME        ACCOUNT_STATUS    LOCK_DATE     PROFILE
                 ————— —————————— ———–  ——————- // 查看 U1 用的状态,已经被锁
                      U1              LOCKED(TIMED)        05-MAR-14            P1

      SQL conn u1/u1;
               ERROR:                                                          // 在被锁之后,使用正确的密码也不能再登陆
                ORA-28000: the account is locked                                                    
                 Warning: You are no longer connected to ORACLE.

        (5)解决办法:第一种可以等 Password_lock_time 参数设定的天数过了之后自动解锁,第二种需要管理员帮助,为用户解锁,在此选择第二种方法                                 求职管理员。
             
             SQL show user;
                        USER is SYS

               SQL alter user u1 account unlock identified by u1;          // 用户解锁时可以使用之前的密码
                           User altered.
               SQL conn u1/u1;
                         Connected.
                SQL show user;
                          USER is U1                       //u1 用户成功登陆

关于 Oracle 中的 profile 参数及用法是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-18发表,共计5897字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)