首页 > 数据库 >Oracle-概要文件dba_profiles(资源配置)

Oracle-概要文件dba_profiles(资源配置)

时间:2024-01-10 16:35:12浏览次数:29  
标签:PROFILE DEFAULT dba profiles -- LIMIT TIME Oracle PASSWORD

DBA_PROFILES 用来显示所有配置文件及其限制。

在11g数据库环境中,dba_profiles的结构只有4个字段,分别是 PROFILE\RESOURCE_NAME\RESOURCE_TYPE\LIMIT;在12c及以上的Oracle数据库中,新增了COMMON\INHERITED\IMPLICIT。

1.通过 select 语句查看所有配置及限制。

select * from dba_profiles;

2.通过 where 子句查看符合条件的记录。

select * from dba_profiles 
where resource_name = 'PASSWORD_LOCK_TIME';

Oracle系统为了合理分配和使用系统的资源提出了概要文件的概念。所谓概要文件,就是一份描述如何使用系统的资源(主要是CPU资源)的配置文件。将概要文件赋予某个数据库用户,在用户连接并访问数据库服务器时,系统就按照概要文件给他分配资源。在有的书中将其翻译为配置文件,其作用包括:

管理数据库系统资源

利用Profile来分配资源限额,必须把初始化参数resource_limit设置为true。

ALTER SYSTEM SET resource_limit=TRUE SCOPE=BOTH;

管理数据库密码及验证方式

默认给用户分配的是DEFAULT概要文件,将该文件赋予了每个创建的用户。但该文件对资源没有任何限制,因此管理员常常需要根据自己数据库系统的环境自行建立概要文件。

通过数据字典查看缺省资源配置内容:

select * from dba_profiles order by profile;

当一个用户连接到数据库上以后,如果在某一段时间内没有任何动作的话,该进程就会自己中断,这样在应用程序就会因为进程超时自动断开而不能正常执行。

分析原因,应该是该进程的用户的概要文件(profile)配置问题。发现用户所在的profile的IDLE_TIME为30。即30秒该进程没有任何操作,就会自动断开。

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 10
          PASSWORD_LIFE_TIME 365
          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 limitfor other session resources,Oracle aborts the operation, rolls back the current statement, andimmediately returns an error.

The user can then commit or roll back the current transaction, andmust then end the session.

翻译:如果用户试图执行超出其他会话资源限制的操作,Oracle将终止该操作,回滚当前语句,并立即返回错误。然后,用户可以提交或回滚当前事务,然后必须结束会话。

1、CALL级LIMITE:

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

2、SESSION级LIMITE:

对象是:整个会话过程;
溢出时:连接终止;

四、如何创建PROFILE:     

1、命令:      

CREATE PROFILE 名称
LIMIT
SESSION_PER_USER 2
CPU_PER_SESSION 1000
IDLE_TIME 60        用户在数据库终止前,可以让连接空闲多长时间(分钟)
CONNECT_TIME 480

五、限制(资源)参数:

LIMIT

0、NULL
1、UNLIMITED 取消资源限制(无限制)
2、DEFAULT 缺剩资源限制,即使用default资源限制

六、打开资源限制:

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

七、修改PROFIE的内容:

1、ALTER PROFILE 名称 LIMIT 参数 新值

例如:

--允许空闲会话的时间,单位(分钟),配置60分钟
alter profile DEFAULT LIMIT IDLE_TIME 60;

--密码验证函数 也就是密码复杂度验证
--默认 NULL 不做检验
--VERIFY_FUNCTION 是一个检验密码复杂度的函数
alter profile DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION VERIFY_FUNCTION;

2、对于当前连接修改不生效。

3、DROP一个PROFILE 

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

八、PROFILE的密码机制限制

1、限制内容

A、限制连续多少次登录失败, 用户被加锁
--密码错误登录的次数 10次,将被锁定
alter profile DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS 10;

B、限制密码的生命周期
--密码有效期,配置 365 天
alter profile DEFAULT LIMIT PASSWORD_LIFE_TIME 365;

C、限制密码的使用间隔
--当密码过期之后,还有多少天可以使用原密码,配置10天
alter profile DEFAULT LIMIT PASSWORD_GRACE_TIME 10;

--密码被修改后原有密码隔多少天被重新使用,默认为UNLIMITED
alter profile DEFAULT LIMIT PASSWORD_REUSE_TIME 10;

--密码被修改后原有密码被修改多少次才允许被重新使用
alter profile DEFAULT LIMIT PASSWORD_REUSE_MAX 10;

2、限制生效的前提:

A、RESOURCE_LIMIT:=TRUE
B、ORACLE\RDBMS\ADMIN\UTLPWDMG.SQL

3、创建密码限制策略:

CREATE PROFILE 名称
LIMIT FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LIFE_TIME 365
PASSWORD_LOCK_TIME 1/24
PASSWORD_GRACE_TIME 10
PASSWORD_REUSE_TIME 10
PASSWORD_REUSE_MAX 10
PASSWORD_VERIFY_FUNCTION VERIFY_FUNCTION;

总结:

failed_login_attempts 10                   --密码错误登录的次数 10次
password_lock_time 1/24                    --超过密码登录错误次数,锁定的时间,1小时
password_grace_time 10                     --当密码过期之后还有多少天可以使用原密码,10天
password_life_time 365                     --密码有效期,设置365天
sessions_per_user unlimited                --每个用户允许的并行会话数,配置为不限制
idle_time 60                               --允许空闲会话的时间,单位分钟,配置60分钟
password_verify_function verify_function   --密码验证函数 也就是密码复杂度验证 verify_function是一个函数
composite_limit unlimited                  --资源分配
cpu_per_session unlimited                  --一个会话可以使用多少cpu,单位百分之一秒,配置为不限制
cpu_per_call unlimited                     --一次sql调用的的cpu时间,配置为不限制
logical_reads_per_session unlimited        --限制会话调用数据块,单位块,配置为不限制
logical_reads_per_call unlimited           --限制sql调用数据块,单位块,配置为不限制
connect_time unlimited                     --限制会话连接时间,配置为不限制
private_sga unlimited                      --限制会话对shared pool私用空间配置,配置为不限制
password_reuse_time unlimited              --密码可重用间隔时间无上限
password_reuse_max unlimited               --密码可用最大改变次数无上限

标签:PROFILE,DEFAULT,dba,profiles,--,LIMIT,TIME,Oracle,PASSWORD
From: https://blog.51cto.com/baoyw/9182041

相关文章

  • Oracle 10g enqueue waits
    Oracle10genqueuewaitsEnqueueTypeDescriptionenq:AD–allocateAUSynchronizesaccessestoaspecificOSM(OracleSoftwareManager)diskAUenq:AD–deallocateAUSynchronizesaccessestoaspecificOSMdiskAUenq:AF–tasks......
  • oracle清空表恢复办法
    今天我不小心把正式库订单表数库都清空了,兄弟们!!!!!!!!!!!!我强迫自己冷静下来,百度搜索解决办法。希望大家别碰到这种事,太后怕了呜呜呜呜呜我自己总结一下1、查询某个时间点之前的数据(如果没数据库,多试几个时间点)select*from表名asoftimestampto_timestamp('2024-01-1009:09:00','......
  • Oracle-使用dbms_metadata.get_ddl()获取对象的定义
    dbms_metadata.get_ddl()用于获取对象的ddl,其具体用法如下。注意:在sqlplus里,为了更好的展示DDL,需要设置如下参数:setline200setpagesize0setlong99999setfeedbackoffsetechooff1)获得表、索引、视图、存储过程、函数的DDLselectdbms_metadata.get_ddl('TABLE','TABLE_......
  • Linux/Oracle-说说我知道的date
    在linux系统中,你可以直接使用命令date查看当前操作系统的时间。例如:--在UOS中,这样显示ywbaoyw@xxx@baoyw-b:~/Desktop$date2024年01月09日星期二11:18:10CSTywbaoyw@xxx@baoyw-b:~/Desktop$--在Linux中,这样显示[root@oracle-baoyw]#dateTueJan911:19:49CTS2024[r......
  • oracle进程详解
     ......
  • oracle复合索引怎么建立
    在Oracle中,可以使用以下语法来创建复合索引:CREATEINDEXindex_nameONtable_name(column1,column2,...);其中,index_name是你给索引起的名称,table_name是要在其上创建索引的表名,column1,column2,...是要包含在索引中的列名(按照你希望的顺序)。以下是一个示例,展示如何创建......
  • Oracle 23C新特性——SQL防火墙(SQL Firewall)
    一、SQL防火墙功能简介SQL防火墙通过监控和阻止未经授权的SQL和SQL注入来工作。它内置了一系列规则,可以识别和阻止常见的SQL注入,如布尔型注入、报错注入、联合查询注入、堆叠查询注入等。此外,它还可以通过基于角色的访问控制(RBAC)来限制用户的访问权限,从而防止SQL注入。<br/>......
  • CentOS7 安装Oracle RAC
    本文是OracleRAC安装之前的前期准备工作,贴出以便后续查阅修改主机名hostnamectlset-hostnamewebdb1hostnamectlset-hostnamewebdb2禁用NUMA和透明大页vi/etc/default/grub[root@webdb1~]#cat/etc/default/grubGRUB_TIMEOUT=5GRUB_DISTRIBUTOR="$(sed's,release.*$,,g......
  • oracle 9i&10g编程艺术-读书笔记2
    配置Statspack安装Statspack需要用internal身份登陆,或者拥有SYSDBA(connect/assysdba)权限的用户登陆。需要在本地安装或者通过telnet登陆到服务器。selectinstance_name,host_name,version,startup_timefromv$instance;检查数据文件路径及磁盘空间,以决定创建数据文件的位置:......
  • MySQL8.0 PG数据库 SQLServer Oracle数据库 数据库忘记密码 处理方法
    MySQL8.0分为rpm方式和tar.gz安装方式不同而不同需要修改/etc/my.conf配置文件.注意如果是rpm包的话就在这个路径下面修改增加内容skip-grant-tables注意修改完需要重启数据库rpm包安装的方式重启方法为:systemctlrestartmysqld然后可以无密码登录数据mysql-uro......