oracle 用户管理 :profile + tablespace + role + user 

一、使用profile管理用户口令
概述:profile是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default的profile。当建立用户没有指定profile选项时,那么oracle就会将default分配给用户。
1.账户锁定
概述:指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用dba的身份去执行该命令。
例子:指定scott这个用户最多只能尝试3次登陆,锁定时间为2天,让我们看看怎么实现。
创建profile文件
SQL> create profile lock_account limit failed_login_attempts 3 password_lock_time 2;
SQL> alter user scott profile lock_account;

2.给账户(用户)解锁
SQL> alter user scott account unlock;

3.终止口令
为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba的身份来操作。
例子:给前面创建的用户test创建一个profile文件,要求该用户每隔10天要修改自己的登陆密码,宽限期为2天。看看怎么做。
SQL> create profile myprofile limit password_life_time 10 password_grace_time 2;
SQL> alter user test profile myprofile;

二、口令历史
概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样oracle就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。
例子:
1)建立profile
SQL>create profile password_history limit password_life_time 10 password_grace_time 2 
password_reuse_time 10 //password_reuse_time指定口令可重用时间即10天后就可以重用
2)分配给某个用户
SQL> alter user test profile password_history;

三、删除profile
概述:当不需要某个profile文件时,可以删除该文件。
SQL> drop profile password_history 【casade】
注意:文件删除后,用这个文件去约束的那些用户通通也都被释放了。。
加了casade,就会把级联的相关东西也给删除掉

查看profile信息

1)select * from dba_profiles;

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则意味着不使用密码验证功能。如果为密码参数指定表达式,则该表达式可以是任意格式,除了数据库 量子查询。

ORACLE 中 PROFILE的管理

PROFILE的管理(资源文件)
      当需要设置资源限制时,必须设置数据库系统启动参数RESOURCE_LIMIT,此参数默认值为FALSE
      可以使用如下命令来启动当前资源限制:
      alter system set RESOURCE_LIMIT=true;
      当需要以后启动时也启动限制,必须在init<SID>.ora中设置
      RESOURCE_LIMIT=true

建立语法:
CREATE PROFILE profile LIMIT 
{ resource_parameters | password_parameters } 
[ resource_parameters | password_parameters ]...;

{ { SESSIONS_PER_USER | CPU_PER_SESSION | CPU_PER_CALL | CONNECT_TIME | IDLE_TIME    
     | LOGICAL_READS_PER_SESSION | LOGICAL_READS_PER_CALL | COMPOSITE_LIMIT }
     { integer | UNLIMITED | DEFAULT }
| PRIVATE_SGA { integer [ K | M ] | UNLIMITED | DEFAULT }
}

{ { FAILED_LOGIN_ATTEMPTS | PASSWORD_LIFE_TIME | PASSWORD_REUSE_TIME
     | PASSWORD_REUSE_MAX | PASSWORD_LOCK_TIME | PASSWORD_GRACE_TIME }
     { expr | UNLIMITED | DEFAULT }
| PASSWORD_VERIFY_FUNCTION { function | NULL | DEFAULT }
}

CREATE PROFILE new_profile
     LIMIT PASSWORD_REUSE_MAX DEFAULT
           PASSWORD_REUSE_TIME UNLIMITED;

CREATE PROFILE app_user LIMIT 
      SESSIONS_PER_USER             UNLIMITED 
      CPU_PER_SESSION               UNLIMITED 
      CPU_PER_CALL                  3000 
      CONNECT_TIME                  45 
      LOGICAL_READS_PER_SESSION     DEFAULT 
      LOGICAL_READS_PER_CALL        1000 
      PRIVATE_SGA                   15K
      COMPOSITE_LIMIT               5000000;

CREATE PROFILE app_user2 LIMIT
      FAILED_LOGIN_ATTEMPTS 5
      PASSWORD_LIFE_TIME 60
      PASSWORD_REUSE_TIME 60
      PASSWORD_REUSE_MAX UNLIMITED
      PASSWORD_VERIFY_FUNCTION verify_function
      PASSWORD_LOCK_TIME 1/24
      PASSWORD_GRACE_TIME 10;
          
一、PROFILE的管理内容:
       1、CPU的时间
       2、I/O的使用
       3、IDLE TIME(空闲时间)
       4、CONNECT TIME(连接时间)
       5、并发会话数量
       6、口令机制:

二、DEFAULT PROFILE:
       1、所有的用户创建时都会被指定这个PROFILE
       2、DEFAULT PROFILE的内容为空,无限制

三、PROFILE的划分:
       If a user attempts to perform an operation that exceeds the limit for other session resources, 
Oracle aborts the operation, rolls back the current statement, and immediately returns an error. 
The user can then commit or roll back the current transaction, and must then end the session. 
       that exceeds the limit(超过限制) for other session resources(范围之外的其他资源) 
       被理解为:连接控制资源范围之外的其他资源。
    
       当一个用户试图操作超过限制的资源时,Oracle终止当前操作,取消正在执行的处理,并且返回一个错误,
用户可以提交或回滚当前事物,之后必须断开会话。

如果一个用户试图操作一个超出他限制的资源,Oracle将放弃这个操作,取消正在执行的处理,并立即返
回一个错误。这个用户然后提交或回滚当前的处理,之后必须终止这个会话。

如果是调用限制时,Oracle终止当前操作,取消正在执行的处理,并且返回一个错误,回滚整个事务。

1、CALL级LIMITE:
          对象是语句:
          当该语句资源使用溢出时:
          A、该语句终止
          B、事物回退
          C、SESSION连接保持

2、SESSION级LIMITE:
          对象是:整个会话过程
          溢出时:连接终止

四、如何管理一个PROFILE
       1、CREATE PROFILE
       2、分配给一个用户
       3、象开关一样打开限制。

五、如何创建一个PROFILE:
       1、命令:
          CREATE PROFILE 名称 
          LIMIT 
          SESSION_PER_USER 2
          CPU_PER_SESSION 1000
          IDLE_TIME 60     用户在数据库终止前,可以让连接空闲多长时间(分钟)
          CONNECT_TIME 480
       
六、限制参数:
       0、UNLIMITED 取消资源限制
          DEFAULT      缺剩资源限制,即使用default资源限制

1、CONNECT_TIME        :一个连接会话的最长连接时间(分钟)
                             当用户会话时间超过CONNECT_TIME指定的时间,Oracle将回滚当前事务,并且结束他的会话
          IDLE_TIME           :一个连接会话的最长连接时间
                             当用户空闲时间超过IDLE_TIME指定的时间,Oracle将回滚当前事务,并且结束他的会话

2、SESSIONS_PER_USER:一个用户允许同时(并发)会话的总数,超过后系统禁止该用户的后续会话,并返回错误:
                             ORA-02391 exceeded simultaneous SESSIONS_PER_USER limit

3、SESSION级LIMITE:
          CPU_PER_SESSION:定义了一个SESSION占用的CPU的时间(1/100 秒),当达到这个限制用户不能在此会话中执行任何操作,
                           此时必须先断开连接,再连接才行。
          CPU_PER_CALL      :限制每次调用SQL语句期间(parse、execute、fetch)可用的CPU时间总量,单位是百分之一秒。达到限制时
                           语句以报错结束。不同于CPU_PER_SESSION的是,没达到CPU_PER_SESSION限制,还可以进行新的查询。
    
       4、LOGICAL_READS_PER_SESSION: 一个会话允许读写的逻辑块的数量限制
    
       5、CALL级LIMITE
          CPU_PER_CALL:每个语句占用的CPU时间
          LOGICAL_READS_PER_CALL:一次调用的SQL期间,允许读数据库块数限制
       6、PRIVATE_SGA:一个会话允许分配的最大SGA大小,使用K/M定义
          COMPOSITE_LIMIT:一个会话的资源成本限制,CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION, and PRIVATE_SGA
       
七、分配给一个用户:
       CREATE USER 名称。。。。。。
       PROFILE 名称
       ALTER USER 名称 PROFILE 名称

八、打开资源限制:
       1、RESOURCE_LIMT:资源文件中含有
       2、ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;
       3、默认不打开

九、修改PROFIE的内容:
       1、ALTER PROFILE 名称参数      新值
       2、对于当前连接修改不生效。

DROP一个PROFILE
       1、DROP PROFILE 名称
          删除一个新的尚未分配给用户的PROFILE,
       2、DROP PROFILE 名称 CASCADE
       3、注意事项
          A、一旦PROFILE被删除,用户被自动加载DEFAULT PROFILE
          B、对于当前连接无影响
          C、DEFAULT PROFILE不可以被删除

十、信息获取:
       1、DBA_USERS:
          用户名,PROFILE 
       2、DBA_PROFILES:
          PROFILE及各种限制参数的值
          每个用户的限制:PROFILE(关键字段)

十一、PROFILE的口令机制限制
       1、限制内容
          A、限制连续多少次登录失败,用户被加锁
          B、限制口令的生命周期
          C、限制口令的使用间隔
       2、限制生效的前提:
          A、RESOURCE_LIMIT:=TRUE
          B、ORACLE\RDBMS\ADMIN\UTLPWDMG.SQL
       3、如何创建口令机制:
          CREATE PROFILE 名称
          SESSIONS_PER_USER 
          .....
          password_life_time 30
          failed_log_attempts 3
          password_reuse_time 3
       4、参数的含义:
          A、FAILED_LOGIN_ATTEMPTS      :当连续登陆失败次数达到该参数指定值时,用户被加锁;
                                       经过DBA解锁(或PASSWORD_LOCK_TIME天)后可继续使用
          B、PASSWORD_LIFE_TIME         :口令的有效期(天),默认为UNLIMITED
          C、PASSWORD_LOCK_TIME         :帐户因FAILED_LOGIN_ATTEMPTS锁定时,加锁天数
          D、PASSWORD_GRACE_TIME        :口令修改的宽限期(天)
          E、PASSWORD_REUSE_TIME        :口令被修改后原有口令隔多少天被重新使用,默认为UNLIMITED
          F、PASSWORD_REUSE_MAX         :口令被修改后原有口令被修改多少次才允许被重新使用。
          G、PASSWORD_VERIFY_FUNCTION:口令效验函数

十二、错误信息及解决方法
ORA-02390 exceeded COMPOSITE_LIMIT, you are being logged off
Cause: The COMPOSITE_LIMIT for the profile is exceeded. That is, the weighted sum of the connection time, logical reads per session, CPU usage per session, and private SGA space used during the session exceeded the limit set by the COMPOSITE_LIMIT clause set in the user profile.
Action: If this happens often, ask the database administrator to raise the COMPOSITE_LIMIT of the user profile, or determine which resource is used the most and raise the limit on that resource.

ORA-02391 exceeded simultaneous SESSIONS_PER_USER limit
Cause: An attempt was made to exceed the maximum number of concurrent sessions allowed by the SESSIONS_PER_USER clause of the user profile.
Action: End one or more concurrent sessions or ask the database administrator to increase the SESSIONS_PER_USER limit of the user profile. For more information about SESSIONS_PER_USER and the database administrator's specific tasks of adjusting concurrent sessions, see the Oracle9i SQL Reference and the Oracle9i Database Administrator's Guide.

ORA-02392 exceeded session limit on CPU usage, you are being logged off
Cause: An attempt was made to exceed the maximum CPU usage allowed by the CPU_PER_SESSION clause of the user profile.
Action: If this happens often, ask the database administrator to increase the CPU_PER_SESSION limit of the user profile.

ORA-02393 exceeded call limit on CPU usage
Cause: An attempt was made to exceed the maximum CPU time for a call, a parse, execute, or fetch, allowed by the CPU_PER_CALL clause of the user profile.
Action: If this happens often, ask the database administrator to increase the CPU_PER_CALL limit of the user profile.

ORA-02394 exceeded session limit on IO usage, you are being logged off
Cause: An attempt was made to exceed the maximum I/O allowed by the LOGICAL_READS_PER_SESSION clause of the user profile.
Action: If this happens often, ask the database administrator to increase the LOGICAL_READS_PER_SESSION limit of the user profile.

ORA-02395 exceeded call limit on IO usage
Cause: An attempt was made to exceed the maximum I/O for a call, a parse, execute, or fetch, allowed by the LOGICAL_READS_PER_CALL clause of the user profile.
Action: If this happens often, ask the database administrator to increase the LOGICAL_READS_PER_CALL limit of the user profile.

ORA-02396 exceeded maximum idle time, please connect again
Cause: A user has exceeded the maximum time allowed to remain idle.
Action: The user must reconnect to the database.

ORA-02397 exceeded PRIVATE_SGA limit, you are being logged off
Cause: This error occurs only when using a multi-threaded server.
Action: Contact the database administrator to expand the PRIVATE_SGA limit.

四、oracle 用户管理(Profile)的更多相关文章

  1. Oracle—用户管理的完全恢复(四)

    在用户管理的备份(三)中,最后打开数据库时,用了alter database open resetlogs;的命令,这里为什么用resetlogs命令? 一.resetlogs的作用 1.将当前的日志 ...

  2. Oracle 用户管理权限

    Oracle 用户管理权限 一.创建用户的Profile文件 SQL> create profile student limit // student为资源文件名 FAILED_LOGIN_AT ...

  3. Oracle的学习一:安装与卸载、sql *plus常用命令、Oracle用户管理

    1.为什么学习oracle? 性能优越: 小型数据库 中型数据库 大型数据库 acess.foxbase mysql.sql server.informix sybase.oracle.db2 复杂量 ...

  4. Oracle—用户管理的完全恢复(一)

    一.分类 可以分为在非归档模式下和归档模式下的完全恢复,完全恢复主要是针对归档模式下的,在非归档模式下很难做到完全恢复,除非是在做恢复时,联机重做日志还没有被重写. 二.非归档的有关性质 1.在非归档 ...

  5. Oracle—用户管理的备份(二)

    在用户管理的备份(一)中(详见:Oracle—用户管理的备份)对用户管理备份几种情况进行了说明:接下来说明几种特别情况和DBverify的使用. 一.如果在表空间在备份模式下,主机发生了异常关闭,会出 ...

  6. 三、oracle 用户管理一

    三.oracle 用户管理一 一.创建用户概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用.create user 用户名 ide ...

  7. Oracle 用户管理与权限控制

    Oracle 用户管理与权限控制 oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system privilege )可以让用户执行特定的命令集.例如,create ...

  8. Oracle—用户管理的备份(一)

    用户管理的备份(一) 一.首先要知道数据库中表空间和文件的信息,有几个性能视图,v$datafile,v$tablespace,v$tempfile,v$logfile,v$controlfile,d ...

  9. 使用IntelliJ IDEA开发SpringMVC网站(四)用户管理

    原文:使用IntelliJ IDEA开发SpringMVC网站(四)用户管理 摘要 通过对用户表的管理,更加深入地讲解SpringMVC的操作. 目录[-] 文章已针对IDEA 15做了一定的更新,部 ...

随机推荐

  1. windows中操作文件和目录的函数

    1.文件操作函数       CreateFile();//创建或打开文件      ReadFile();//从文件读      WriteFile();//向文件写      SetFilePoi ...

  2. Oracle新建实例后,修改sys和system密码。

    sqlplus/nolog connect sys as sysdba alert user sys identified by pwd;

  3. JSON中JObject和JArray,JValue序列化(Linq)

    http://blog.csdn.net/lovegonghui/article/details/50293629 一.JObject和JArray序列化 1.实例化JArray和JObject,然后 ...

  4. xcode配色方案 (自己常用的)

    https://github.com/ArtSabintsev/Solarized-Dark-for-Xcode

  5. inception cenOS 安装

    inception手册http://mysql-inception.github.io/inception-document/install/ 执行命令sh inception_build.sh,ce ...

  6. installshield学习笔记

    看预定义常量的值:SprintfBox(INFORMATION,"","%d",变量值);     自定义常量:#define MAXCOUNT 1000;#d ...

  7. 数据结构之线性表的顺序存储结构的实现--C语言版

    #include <stdio.h> #include <stdlib.h> #include <time.h> #define INIT_SIZE 100 #de ...

  8. Jquery - UI - Dialog(转)

    jQuery UI Dialog常用的参数有: 1.autoOpen:默认true,即dialog方法创建就显示对话框 2.buttons:默认无,用于设置显示的按钮,可以是JSON和Array形式: ...

  9. Excel 文件转 JSON格式对象

    将导入的如图所示格式的城乡区划代码的excel文件整理成json格式的对象储存在js文件中: var PROJECTDISTRICTDATA=[    {        "name" ...

  10. CentOS6.3配置SVN之subversion1.7.7

    今天配置了 SVN 记在这儿 备忘: 1. 下载 svn 软件包和依赖包 cd /mydata/soft wget http://labs.mop.com/apache-mirror/subversi ...