环境: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];

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

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

    这里.我们接着上一小节2.6留下的问题:假设要查询的字符串中含有"_"或"%".又该如何处理呢? 開始今天的学习. 2.7  怎样使用转义(escape)操作符 ...

  2. Oracle学习第二天

    oracle数据库的常见数据类型oracle全部数据类型 有26种 char定长字符串类型 长度是固定不变的 例如:no char(10) 如果存入的值不足十个字符,其它位也被占用默认长度是1 最大长 ...

  3. 【Java EE 学习 28 上】【oracle学习第二天】【子查询】【集合运算】【几种数据库对象】

    一.子查询 1.为什么要使用子查询:问题不能一步求解或者一个查询不能通过一步查询得到. 2.分类:单行子查询和多行子查询. 3.子查询的本质:一个查询中包含了另外一个或者多个查询. 4.使用子查询的规 ...

  4. Oracle学习第二篇—单行函数

    1字符函数 length  字符长度 lengthb 字节长度 lower 变为小写 upper 变为大写 initcap 首字母大写 select Lower('xun Ying') 小写,Uppe ...

  5. Asp.Net MVC4 + Oracle + EasyUI 学习 第二章

    Asp.Net MVC4 + Oracle + EasyUI 第二章 --使用Ajax提升网站性能 本文链接:http://www.cnblogs.com/likeli/p/4236723.html ...

  6. Oracle学习线路

    出自huyangg的博客,地址是:oracle学习路线图 1.sql.pl/sql(网上有很多的视频,可以做一个简单的入手,然后看几本书,多做实验)    作为oracle的基本功,需要大家对sql和 ...

  7. Oracle学习系列1-7

    Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 3 ...

  8. Oracle学习系列3

    Oracle学习系列3 ************************************************************************************ 多表查 ...

  9. oracle学习笔记(一)用户管理

    --oracle学习第一天 --连接 @后面连接数据库实例,具体连接到那个数据库 conn scott/tiger@MYORA1; --修改密码 passw; --显示用户 show user; -- ...

随机推荐

  1. python的random模块

    As an example of subclassing, the random module provides the WichmannHill class that implements an a ...

  2. Educational Codeforces Round 1 C. Nearest vectors 极角排序

    Partial Tree Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/598/problem/ ...

  3. HDU 4813 Hard Code 水题

    Hard Code Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.act ...

  4. Codeforces Gym 100610 Problem K. Kitchen Robot 状压DP

    Problem K. Kitchen Robot Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/10061 ...

  5. 自定义的带tab的可左右滑动的viewpager之二viewpager与fragment不兼容

    总的来说,这个TAB用起来还算方便吧 不过随着用的地方多起来,发现了一些问题,比如下面这个界面: TAB1和TAB2都是表单,保存按钮对两个TAB都有效:若当前显示TAB1,点击保存则保存TAB1的f ...

  6. JAVA反射机制学�

    JAVA反射机制:对于随意一个类,都可以知道这个类的全部属性和方法:对于随意一个对象,都可以调用它的随意一个方法和属性:这样的动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. J ...

  7. MySQL · 物理备份 · Percona XtraBackup 备份原理

    http://mysql.taobao.org/monthly/2016/03/07/ 前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据 ...

  8. 结构体定义 typedef struct 用法详解和用法小结

    typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便.具体区别在于:若struct node {}这样来定义结构体的话.在申请node 的变量时,需要这样写,stru ...

  9. java_有返回值线程_提前加载例子

    package com.demo.test3; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionE ...

  10. 《Java程序员面试宝典》读书笔记1

    今天读书发现一个很有趣的问题 请问以下程序会输出什么? public   class   Test2   {  public   static   void   main(String[]   arg ...