Oracle Profile概念与示例

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         DEFAULTSELECTresource_name,resource_type,limit
FROMdba_profiles
WHEREprofile = 'DEFAULT'
ORDER BYresource_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_FUNCTION18 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@orclpdb1SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jul 17 01:47:05 2023
Version 19.19.0.0.0Copyright (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 specifiedSQL> !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;DECLAREj FLOAT;
BEGINFOR i IN 1..10000 LOOPSELECTsqrt(1000)INTO jFROMdual;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.hqwc.cn/news/27192.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CAPL(vTESTStudio) - CAPL实现CANCANFD接收

诊断作为CAN&CANFD总线测试中最大也是很重要的一块内容,虽然测试过程比较简单,但是作为诊断接收函数,我想大家在测试中都会遇到多种多样的自研函数,经过多年的工作,我也是一直希望写出一个能够适配我所能想到的所有情况的诊断应答接收,以下函数是我最近对于诊断接收函…

右键pdf文件没有打印

问题描述 右键点pdf文件,弹出的菜单找不到打印选项。网上找了很多办法,然并卵啊。还是得靠自己慢慢摸索。 原因分析 新安装的win11系统,pdf文件默认可以用windows自带的edge浏览器打开。但是edge浏览器没有能力提供右键打印功能。 解决办法…

Vis相关的期刊会议

中国计算机学会推荐国际学术会议和期刊目录 文档, 下载 link:CCF推荐国际学术刊物目录-中国计算机学会 一.可视化方向文章 1.IEEE VIS,是由 IEEE Visualization and Graphics Technical Committee(VGTC) 主办的数据可视化领域的顶级会议&a…

RuoYi-Vue/vue项目访问 webpack 中定义的变量

前言 RuoYi-Vue 3.8.4 webpack 中定义的变量 vue.config.js 中定义的 webpack 的变量 在html页面中&#xff0c;如何访问 webpack 的变量 <title><% webpackConfig.name %></title>参考&#xff1a;ruoyi-ui/public/index.html 文件

【力扣刷题 | 第二十天】

目录 前言&#xff1a; 406. 根据身高重建队列 - 力扣&#xff08;LeetCode&#xff09; 452. 用最少数量的箭引爆气球 - 力扣&#xff08;LeetCode&#xff09; 总结&#xff1a; 前言&#xff1a; 今天刷贪心算法的题目 406. 根据身高重建队列 - 力扣&#xff08;LeetC…

win键无效,键盘Win组合键突然不不能用如何解决?

电脑win键失效怎么办&#xff1f; 在使用windows系统的时候&#xff0c;发现一个问题&#xff0c;就是win键失效了&#xff0c;怎么按都没有反应&#xff0c;该怎么办呢&#xff1f; 键盘方面的原因 此时之是键盘的原因与系统本身没有关系&#xff0c;键盘屏蔽热键主要目标是…

汽车的空气悬架的功能以及发展趋势

空气悬架能实现什么功能以及发展趋势 了解空气悬架之前,首先得快速了解什么是悬架。 教科书说法是: 悬架系统是汽车的车架与车桥或车轮之间的一切传力连接装置的总称。悬架系统基本构成有弹性元件(各类弹簧,缓冲作用);减震元件(减震器,减震作用);导向机构(控制臂等…

Pytorch如何打印与Keras的model.summary()类似的输出

1 Keras的model.summary() 2 Pytorch实现 2.1 安装torchsummary包 pip install torchsummary2.2 代码 import torch import torch.nn as nn import torch.nn.functional as F from torchsummary import summaryclass Net(nn.Module):def __init__(self):super(Net, self).__…

STM32驱动ADS1256串口输出-AD转换

STM32驱动ADS1256串口输出-AD转换 ADS1256ADS1256简介芯片特点引脚说明模块相关寄存器与命令相关程序初始化 实验效果接线实验现象 ADS1256 ADS1256简介 ADS1256是TI推出的一款微功耗、高精度、8 通道、24 位高性能模数转换器。该芯片还带有4个可编程的I/O口、输入缓冲器和可编…

nginx基本2——配置文件详解(网页配置篇)

文章目录 一、基本了解二、nginx.conf配置参数2.1 调试参数2.2 必配参数2.3 优化性能参数2.4 event{}段配置参数2.5 网络连接参数2.6 fastcgi配置参数2.7 总结常配参数 三、http{}段配置参数3.1 配置结构3.2 精简配置网页3.3 location定义网页3.3.1 root path用法3.3.1 alias p…

初识mysql数据库之索引概念与磁盘效率问题

目录 一、索引的概念及作用 二、实际看看索引的效率提升 三、认识磁盘 1. 简单了解磁盘 2. 数据库文件存储位置 3. 定位扇区 4. 数据读取效率问题 5. 磁盘随机访问与磁盘连续访问 5.1 随机访问 5.2 连续访问 四、mysql与磁盘的交互 五、建立共识 一、索引的概念及…

HarmonyOS学习路之方舟开发框架—学习ArkTS语言(基本语法 三)

页面和自定义组件生命周期 在开始之前&#xff0c;先明确自定义组件和页面的关系&#xff1a; 自定义组件&#xff1a;Component装饰的UI单元&#xff0c;可以组合多个系统组件实现UI的复用。页面&#xff1a;即应用的UI页面。可以由一个或者多个自定义组件组成&#xff0c;E…