Oracle学习第二天---Profile的使用

环境:Oracle 11g

一.权限的传递

  1.如果传递的是对象权限,就在后面加入with grant option;

  eg:system用户有张temp的表,只想usertest用户拥有查询的权限,则:

grant select on temp to usertest with grant option;

  2.如果传递的是系统权限,则加入with admin option;

  eg:system用户将connect角色传递给usertest用户:

grant connect to usertest with admin option;

二.Profile使用详解

  1.目的:

  Oracle数据库系统中的Profile可以用来对用户所能使用的数据库资源进行限制,使用create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用。如果将Profile分配给用户,则该用户所能使用的数据库资源都在该Profile的限制之内。

  2.条件:

  必须拥有dba的权限才能配置Profile文件。

  3.语法:

CREATE PROFILE profile

  LIMIT { resource_parameters

  | password_parameters

  }

  [ resource_parameters

  | password_parameters

  ]... ;

  <resource_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 }

  }

  4.语法解释:

  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)中所允许分配的最大空间,以字节为单位。(该限制只在使用共享服务器结构时才有效,会话在SGA中的私有空间包括私有的SQL和PL/SQL,但不包括共享的SQL和PL/SQL)。
       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_grace_time参数,如果在grace
period内没有改变密码,则密码会失效,连接数据库被拒绝。如果没有设置password_grace_time参数,默认值unlimited将引
发一个数据库警告,但是允许用户继续连接。
      
Password_reuse_time和password_reuse_max:这两个参数必须互相关联设置,password_reuse_time
指定了密码不能重用前的天数,而password_reuse_max则指定了当前密码被重用之前密码改变的次数。两个参数都必须被设置为整数。
       1>.如果为这两个参数指定了整数,则用户不能重用密码直到密码被改变了password_reuse_max指定的次数以后在password_reuse_time指定的时间内。
       如:password_reuse_time=30,password_reuse_max=10,用户可以在30天以后重用该密码,要求密码必须被改变超过10次。
       2>.如果指定了其中的一个为整数,而另一个为unlimited,则用户永远不能重用一个密码。
       3>.如果指定了其中的一个为default,Oracle数据库使用定义在profile中的默认值,默认情况下,所有的参数在profile中都被设置为unlimited,如果没有改变profile默认值,数据库对该值总是默认为unlimited。
       4>.如果两个参数都设置为unlimited,则数据库忽略他们。
       Password_lock_time:指定登陆尝试失败次数到达后帐户的缩定时间,以天为单位。
       Password_grace_time:指定宽限天数,数据库发出警告到登陆失效前的天数。如果数据库密码在这中间没有被修改,则过期会失效。
      
Password_verify_function:该字段允许将复杂的PL/SQL密码验证脚本做为参数传递到create
profile语句。Oracle数据库提供了一个默认的脚本,但是自己可以创建自己的验证规则或使用第三方软件验证。
对Function名称,指定的是密码验证规则的名称,指定为Null则意味着不使用密码验证功能。如果为密码参数指定表达式,则该表达式可以是任意格
式,除了数据库标量子查询。

  5.实例:

  实例1>限制usertest用户尝试输入密码的次数为3次,3次输入错误,则锁定账号3天:

  账户的解锁,使用如下语句:

    SQL>alter user usertest(your_user_name) account unlock;

  实例2>强制用户定期修改密码。让usertest用户每隔10天修改登陆密码,宽限期为2天:

  实例3>希望用户在修改密码的时候不能使用上一次使用过的密码:

  使用口令历史,这样Oracle数据库就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,就会对新旧密码进行匹配,发现一致时,提醒用户重新输入密码

  6.删除Profile配置

drop profile your_profile_name [cascade];
时间: 2024-10-05 14:50:11

Oracle学习第二天---Profile的使用的相关文章

oracle学习 第二章 限制性查询和数据的排序 ——03

这里,我们接着上一小节2.6留下的问题:如果要查询的字符串中含有"_"或"%",又该怎样处理呢? 开始今天的学习. 2.7  如何使用转义(escape)操作符 可以是用个转义(escape)关键字来完成此任务.为了进行练习,我们必须先创建一个临时的表,之后再往该表中插入1行记录,其包含通配符.可能您现在还可能十分不理解例2-13和例2-14的SQL语句.没有问题,您只要照着输入就可以了. 例 2-13 SQL> CREATE TABLE dept_temp

Oracle学习第二天

oracle数据库的常见数据类型oracle全部数据类型 有26种 char定长字符串类型 长度是固定不变的 例如:no char(10) 如果存入的值不足十个字符,其它位也被占用默认长度是1 最大长度是2000个字节 GBK编码 1000个汉子占用的空间较多,但是查询效率较高 varchar2边长字符串类型 长度可变 例如:定义的长度是100个字节,存入的值是80个字节,那么实际占用的就是80个字节varchar在oracle中不推荐使用,强烈推荐你使用varchar2必须要为其指定长度 1-

Oracle学习第二篇—单行函数

1字符函数 length  字符长度 lengthb 字节长度 lower 变为小写 upper 变为大写 initcap 首字母大写 select Lower('xun Ying') 小写,Upper('xun Ying') 大写,  initcap('xun Ying') 首字母大写 from dual lpad 左填充  rpad 右填充 trim 去掉前后指定的字符 replace instr 在母串中查找子串,找到返回下标(从1开始),否则返回0 1 select lpad('abcd

Oracle学习系列3

Oracle学习系列3 ************************************************************************************ 多表查询: 1,SQL1999语法对多表查询的支持 2,分组统计及统计函数的使用 3,子查询,并结合多表查询,分组统计做复杂查询 4,数据库的更新操作 5,事务处理和数据库死锁 ****************************************************************

Oracle学习(三):单行函数

1.知识点:可以对照下面的录屏进行阅读 SQL> --字符函数 SQL> --字符串的转换 SQL> select lower('hellO WORld') 转小写,upper('hellO WORld') 转大写,initcap('hello world') 首字母大写 2 from dual; SQL> --substr(a,b) 从a中,第b位开始取,取右边所有的字符 SQL> select substr('Hello World',4) from dual; SQL&

oracle学习 第三章 常用的SQL*PLUS命令 ——02

今天接着昨天的RUN命令继续讲. 3.5 n(设置当前行)命令和A(PPEND)(附加)命令 设想,你输入了例3-10的查询语句 例 3-10 SQL> SELECT ename 2 FROM emp; 例 3-10 结果 看到以上输出时,您发现在SELECT子句中忘了job,sal.这时您又如何修改您的SELECT子句呢?首先您应该使用SQL*PLUS的L(LIST)命令来显示SQL缓冲中的内容. 例 3-11 SQL> L 例 3-11 结果 在例3-11显示的结果中,2后面的"

oracle学习笔记 存储及raid技术概述

oracle学习笔记 存储及raid技术概述 本课以oracle数据库所运行的环境,讲一下存储和raid技术. 一)oralce生产环境里的结构 先说一下oracle所在的环境. 有一种结构: 两个服务器.两个光纤存储交换机.两个存储, 它们通过网线相互连接在一起. 每个服务器接两个交换机, 每个交换机连两个服务器同时连两个存储, 每个存储和两个交换机有连接. 这是oracle数据库相对比较典型的正规的运行环境. 每个服务器上都装Linux和oracle数据库软件, oracle数据库建在存储上

【我的Oracle学习笔记(二)】----- select语句补充

一.多表查询 多表查询是指从多个有关联的表中查询数据,其语法与单表查询类似.一般来说,多表查询的表要用连接联系起来,如果没连接,则查询结果是这多个查询表的笛卡尔积(注释1). 模拟查询雇员姓名和所在部门名称: select [雇员姓名],[部门名称] from [雇员表] a,scott,[部门表] b where a.[部门编号]=b.[部门编号]; 上例中,为每一个查询表指定了别名,便于SQL语句的书写. 模拟查询在”sales“部门工作的雇员其雇员姓名 select [雇员姓名] from

Oracle学习系列1-7

Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 300    ; set pagesize 30     ; 编辑sql命令: ed a.sql 执行 @a 切换用户: conn User/passwd   [as sysdba|sysoper ] conn system/manager conn sys/change_on_install  as