Oracle Profile概念与示例

news2024/10/6 10:39:30

Profile和SQL Profile是不同的,前者是用CREATE PROFILE创建,后者和SQL Tuning有关。

profile的定义为:

which is a set of limits on database resources. If you assign the profile to a user, then that user cannot exceed these limits.

profile用CREATE PROFILE创建,然后用CREATE USERALTER USER赋予用户。

profile分为口令相关和资源相关2类。

看下语法:
在这里插入图片描述

资源相关的限制包括:
添加链接描述

口令相关的限制包括:
在这里插入图片描述
由于多租户的关系,profile又分为common和local两种。

以下的示例均在PDB中执行:

SQL> select username, profile from dba_users where username = 'SSB';

   USERNAME    PROFILE
___________ __________
SSB         DEFAULT

SELECT
    resource_name,
    resource_type,
    limit
FROM
    dba_profiles
WHERE
    profile = 'DEFAULT'
ORDER BY
    resource_type,
    resource_name;

               RESOURCE_NAME    RESOURCE_TYPE                            LIMIT
____________________________ ________________ ________________________________
COMPOSITE_LIMIT              KERNEL           UNLIMITED
CONNECT_TIME                 KERNEL           UNLIMITED
CPU_PER_CALL                 KERNEL           UNLIMITED
CPU_PER_SESSION              KERNEL           UNLIMITED
IDLE_TIME                    KERNEL           UNLIMITED
LOGICAL_READS_PER_CALL       KERNEL           UNLIMITED
LOGICAL_READS_PER_SESSION    KERNEL           UNLIMITED
PRIVATE_SGA                  KERNEL           UNLIMITED
SESSIONS_PER_USER            KERNEL           UNLIMITED
FAILED_LOGIN_ATTEMPTS        PASSWORD         3
INACTIVE_ACCOUNT_TIME        PASSWORD         UNLIMITED
PASSWORD_GRACE_TIME          PASSWORD         7
PASSWORD_LIFE_TIME           PASSWORD         60
PASSWORD_LOCK_TIME           PASSWORD         1
PASSWORD_REUSE_MAX           PASSWORD         5
PASSWORD_REUSE_TIME          PASSWORD         365
PASSWORD_ROLLOVER_TIME       PASSWORD         0
PASSWORD_VERIFY_FUNCTION     PASSWORD         ORA12C_STRONG_VERIFY_FUNCTION

18 rows selected.

口令相关的限制

FAILED_LOGIN_ATTEMPTS

Specify the number of consecutive failed attempts to log in to the user account before the account is locked.

这个很好理解,你输错3次口令,第4次时,会报错如下:

$ sqlplus ssb/Wrong_password@orclpdb1

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jul 17 01:47:05 2023
Version 19.19.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

ERROR:
ORA-28000: The account is locked.


Enter user-name:

此时必须通过sys用户解锁用户:

SQL> alter user ssb account unlock;

User altered.

PASSWORD_LIFE_TIME

同一密码可用于身份验证的天数。即口令的有效期。

PASSWORD_REUSE_TIME 和 PASSWORD_REUSE_MAX

这两个参数必须一起设置。而且必须同时满足,例如30天内口令修改10次。

INACTIVE_ACCOUNT_TIME

指定允许连续无登录用户帐户的天数,超过后帐户将被锁定。

PASSWORD_GRACE_TIME

指定宽限期开始后的天数,在此期间发出警告并允许登录。

PASSWORD_LOCK_TIME

指定连续尝试登录失败指定次数后帐户将被锁定的天数。

PASSWORD_ROLLOVER_TIME

Gradual Database Password Rollover是21c的功能,现已移植到19c。

简单来说,此功能允许新老口令并存一段时间,之后就只允许新口令登录了。

此功能的介绍也可以参见这里。

关于此功能的例子,可参见这里,非常全面且好理解。

核心在这里:

SQL> alter user testuser1 identified by &NewPassword;
alter user testuser1 identified by &NewPassword
*
ERROR at line 1:
ORA-28221: REPLACE not specified


SQL> !oerr ORA 28221
28221, 00000, "REPLACE not specified"
// *Cause:  User is changing password but password verification function is
//          turned on and the original password is not specified and the
//          user does not have the alter user system privilege.
// *Action: Supply the original password.

SQL> alter user testuser1 identified by &NewPassword replace &OldPassword;

User altered.

-- 新老口令都可以连接数据库
SQL> connect testuser1/&NewPassword##@orclpdb1
Connected.

SQL> connect testuser1/&OldPassword##@orclpdb1
Connected.

PASSWORD_VERIFY_FUNCTION

如果设为null,则无口令验证。

资源相关的限制

SESSIONS_PER_USER

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

我对此参数印象如此深刻,因为Tom Kyte在其书《Expert Oracle Database Architecture》中 Solving Problems Simply一节提到过,说明了Oracle数据库的简洁性。

示例:

-- run as SYS user
create profile profile1 limit SESSIONS_PER_USER 1;
alter user ssb profile profile1;
-- run as SSB user 
SQL> connect ssb@orclpdb1
Connected.
-- issue another new connection
SQL> connect ssb@orclpdb1
ERROR:
ORA-02391: exceeded simultaneous SESSIONS_PER_USER limit

恢复:

alter user ssb profile default;

CPU_PER_SESSION

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

这个例子比较极端,不过可以说明问题:

alter profile profile1 limit CPU_PER_SESSION 1;
alter user ssb profile profile1;

-- login as ssb
connect ssb@orclpdb1;

DECLARE
    j FLOAT;
BEGIN
    FOR i IN 1..10000 LOOP
        SELECT
            sqrt(1000)
        INTO j
        FROM
            dual;

    END LOOP;
END;
/

ERROR at line 1:
ORA-02392: exceeded session limit on CPU usage, you are being logged off
ORA-06512: at line 7

CPU_PER_CALL

指定调用(解析、执行或获取)的 CPU 时间限制,以百分之一秒表示。

这个和上一个类似,就不举例了。

CONNECT_TIME

指定会话的总运行时间限制(以分钟为单位)。

这个也比较容易演示,因为connect time就是elapsed time:

alter profile profile1 limit CONNECT_TIME 1;

SQL> exec DBMS_SESSION.SLEEP(60);

PL/SQL procedure successfully completed.

SQL> exec DBMS_SESSION.SLEEP(60);
BEGIN DBMS_SESSION.SLEEP(60); END;

*
ERROR at line 1:
ORA-02399: exceeded maximum connect time, you are being logged off

IDLE_TIME

指定会话期间允许的连续不活动时间段(以分钟为单位)。 长时间运行的查询和其他操作不受此限制。

当您设置 X 分钟的空闲超时时,请注意,会话将需要额外几分钟才能终止。

在客户端应用程序端,错误消息仅在下次空闲客户端尝试发出新命令时显示。

这个也很好演示:

SQL> select 1 from dual;
select 1 from dual
*
ERROR at line 1:
ORA-02396: exceeded maximum idle time, please connect again

LOGICAL_READS_PER_SESSION

指定处理 SQL 语句(解析、执行或获取)的调用所允许读取的数据块数量。

LOGICAL_READS_PER_CALL

指定处理 SQL 语句(解析、执行或获取)的调用所允许读取的数据块数量。

PRIVATE_SGA

指定会话可以在系统全局区域 (SGA) 的共享池中分配的专用空间量。 有关该子句的信息,请参阅 size_clause。

注意:此限制仅在您使用共享服务器架构时适用。 SGA 中会话的私有空间包括私有 SQL 和 PL/SQL 区域,但不包括共享 SQL 和 PL/SQL 区域。

COMPOSITE_LIMIT

指定会话的总资源成本,以服务单位表示。 Oracle 数据库将总服务单位计算为 CPU_PER_SESSION、CONNECT_TIME、LOGICAL_READS_PER_SESSION 和 PRIVATE_SGA 的加权和。

参考

  • Oracle CREATE PROFILE
  • How to Create Profiles and Password Management in Oracle DBA
  • A Simple Guide to Lockdown Profiles
  • Limited Profiles and Private References

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/763109.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【简单易懂版】使用IDEA操作Hadoop(增删改查)

文章目录 一、引入hdfs依赖二、创建hdfs工具类三、测试hdfs工具类反思 前提:服务器中已经配置好了hadoop 本人亲测,以下代码已经跑通,基础功能都可以完成!!!希望对大家有用!!&#x…

2023年,如何顺利通过品牌备案?

众所周知,在当今社会一个产品要想在市场上立足的话,那树立自己的品牌形象就显得尤为重要了,品牌形象树立起来了,才能够更好的得到消费者的认可,才会有更多的消费者来购买产品。 品牌代表了专业、规范、保证、服务等维…

解密算法王国:揭秘程序员必备技能(超详细)

解密算法王国:揭秘程序员必备技能(超详细) 概述一、算法基础二、排序算法2.1 冒泡排序 (Bubble Sort)2.2 插入排序 (Insertion Sort)2.3 快速排序 (Quick Sort)2.4 归并排序 (Merge Sort) 三、查找算法3.1 线性查找 (Linear Search)3.2 二分查…

idea专业版和idea社区版整合Tomcat,并将war包部署

文章目录 idea专业版和idea社区版整合Tomcat,并将war包部署一、idea专业版部署二、idea社区版部署三、错误案例 idea专业版和idea社区版整合Tomcat,并将war包部署 开发过程中,由于需要运用云平台,所以从新配置开发环境&#xff0…

嵌入式软件测试笔记11 | 测试设计技术简单说明

11 | 测试设计技术简单说明 1 测试设计技术的步骤1.1 确定测试情形1.2 确定逻辑测试用例1.3 确定物理测试用例1.4 建立初始化环境1.5 组合测试脚本1.6 定义测试方案 2 测试设计技术的优点3 测试设计技术的特征3.1 白盒或黑盒3.2 导出测试用例的原则3.2.1 处理逻辑3.2.2 等价类划…

Git问题:git拉取/推送github代码出现Connection closed by问题

目录 问题原因解决方法一方法二方法三 问题 使用git去拉取github代码的时候,出现了如下问题 Connection closed by ip port 致命错误:无法读取远程仓库。 请确认您有正确的访问权限并且仓库存在。 或 Connection closed by ip port fatal : Could not r…

广告语如何翻译,哪里比较专业

现如今,随着全球经济的不断发展,国际国内商品广告无处不在,广告语翻译也显得越来越重要。那么如何做好广告语的英语翻译,北京哪个翻译公司比较专业? 业内人士指出,广告语作为一种信息传达的方式有其特殊性。…

Rxjava框架学习总结

一.前言 本篇文章学习的目标: Rxjava体系的知识相当庞大,我们仅针对以上内容进行学习;其次,源码的细节是比较复杂的,我们以弄清楚原理为主,不会深入细节; 需要弄清楚的概念:被观察…

氨基保护产物多肽2056902-27-1,Boc-EB,用于实验室科研研究

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ 产品描述: 放射显影多肽(CAS号:2056902-27-1),氨基保护产物多肽理论分析: 中文名:EB-NH2,(E)-4-氨基-6-(((4-氨基-3,3-二甲基-…

MVC精讲

前言:框架,架构,设计模式 架构:简单的说架构就是一个蓝图,是一种设计方案,将客户的不同需求抽象成为抽象组件,并且能够描述这些抽象组件之间的通信和调用。 框架:软件框架是项目软件…

Thread-local storage is not supported for the current target

xcode编译时遇到上述报错,解决办法:调整最低系统版本配置

基于阿里云微信小程序语音识别

页面效果 其中采用阿里云语音识别&#xff1a;阿里云一句话语音识别 语音识别页面 <template><view><view class"chat_list"><view v-for"v in chatList" :class"v.type right ? type_right : type_left"><chat …

matlab基础篇(一)

matlab对大小写敏感&#xff0c;首字母必须为字母&#xff0c;命名最长长度为63 1.计算语法 2^(3.5*1.7) 不是 e^sin(10) 而是 exp(sin(10)) ln在matlab中表示为log&#xff0c;ln10用matlab语句表示为log10π用pi表示 sinπ&#xff0c;sin2π分别表示为 sinpi(1) sinpi(2)…

修改kernel的spi驱动,cmd+addr+data时序连续以支持spiFlash的mtd设备

【背景】 新增加的spi-nvFram芯片mb85rs4mt&#xff0c;以支持mtd设备挂载&#xff0c;发现只修改jedec无法读取芯片id&#xff0c;以及mtd设备生成。 【目的】 linux系统下支持spi-nvFram芯片。 【排查】 结合datasheet的数据传输时序需求&#xff0c;用示波器查看&#xff…

SSM入门—Spring:AOP切面

目录 代理 基于XML的AOP配置 基于注解的AOP配置 代理 &#xff08;帮别人做事情&#xff09;&#xff0c;在执行真正的任务之间或者之后&#xff0c;去完成某些事情。 比如日志&#xff0c;权限验证 1、静态代理&#xff1a;手动创建代理类 2、动态代理&#xff1a;自动创…

1.计算机网络体系结构

1.1 计算机网络概述 1.1.1 计算机网络的概念 计算机网络是将一个分散的、具有独立功能的计算机系统&#xff0c;通过通信设备与线路连接起来&#xff0c;由功能完善的软件实现资源共享和信息传递的系统。 1.1.2 计算机网络的组成 &#xff08;1&#xff09;从组成部分看&#x…

PB8-RH、PB12-LH、PB5-RH单向离合器

PB3-RH、PB3-LH、PB5-RH、PB5-LH、PB6-RH、PB6-LH、PB8-RH、PB8-LH、PB10-RH、PB10-LH、PB12-RH、PB12-LH、PB14-RH、PB14-LH单向离合器、凸轮离合器、单向轴承外环为套筒可方便与小外径的链轮、齿轮、同步带轮等一同装配&#xff0c;请根据箭头方向指定内环的啮合回转方向。右…

不同的二叉搜索树(简单题目+升级题目)

简单题目&#xff08;只需要返回多少种&#xff09;&#xff1a; 给你一个整数 n &#xff0c;求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种&#xff1f;返回满足题意的二叉搜索树的种数。 示例&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;5…

2023年人工智能行业研究报告

第一章 行业概况 1.1 定义和分类 人工智能&#xff08;ArtificialIntelligence, AI&#xff09;是一个广泛的计算机科学分支&#xff0c;它致力于创建和应用智能机器。在更深入的层次上&#xff0c;人工智能可以被理解为以下几个方面&#xff1a; 学习和适应&#xff1a;人工…

深入篇【C++】手搓模拟实现vector类(详细剖析接口底层实现原理):【200行代码实现】

深入篇【C】手搓模拟实现vector类(详细剖析接口底层实现原理&#xff09;【200行代码实现】 【vector类模拟实现代码】Ⅰ.构造/析构1.vector()2.operator3.~string() Ⅱ.访问遍历1.operator[]2.begin()/end() Ⅲ.增操作1.push_back()2.insert() Ⅳ.删操作1.erase()2.pop_back()…