Oracle-profile简单使用

2024年 8月 1日 24.6k 0

PROFILE 文件概述:PROFILE 文件是一个资源限制和密码参数的命名集合,用于限制某个用户的数据库和实例资源的使用情况,可以限制用户的并发会话数、每个会话可用的 CPU 处理时间和可用的逻辑 I/O 量。当创建数据库时,Oracle 会自动创建名称为 default 的 profile 。当创建的用户没有指定 profile 时,那么 Oracle 就会将 default 分配给新建的用户。

DBA_PROFILES 显示所有配置文件及其它们对应的限制。其中 DBA_PROFILES 的表结构如下:

字段名 数据类型 是否为空 描述
PROFILE VARCHAR2(128) NOT NULL 概要文件名
RESOURCE_NAME VARCHAR2(32) NOT NULL 资源名称
RESOURCE_TYPE VARCHAR2(8) 表示资源配置文件是内核还是密码参数
LIMIT VARCHAR2(128) 这个概要文件对这个资源的限制
COMMON VARCHAR2(3) 表示给定的概要文件是否通用。可能的值:如果概要文件是普通配置文件(YES),则是如果概要文件是本地的(NO)(不常见)
INHERITED VARCHAR2(3) 表示该概要文件定义是否继承自另一个容器(YES/NO)
IMPLICIT VARCHAR2(3) 表示该概要文件是否由隐式应用程序创建(YES/NO)

查询DEFAULT PROFILE 概述文件:

SELECT * FROM dba_profiles WHERE profile = 'DEFAULT';

Oracle-profile简单使用-1

新增自定义 profile

对于非sys用户,如果需要创建 profile,则需要有
语法:

CREATE PROFILE profile
LIMIT { resource_parameters
| password_parameters
}...
[ CONTAINER = { CURRENT | ALL } ] ;

Oracle-profile简单使用-2

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
{ size_clause | UNLIMITED | DEFAULT }
}

Oracle-profile简单使用-3

password_parameters 选项:

{ { FAILED_LOGIN_ATTEMPTS
| PASSWORD_LIFE_TIME
| PASSWORD_REUSE_TIME
| PASSWORD_REUSE_MAX
| PASSWORD_LOCK_TIME
| PASSWORD_GRACE_TIME
| INACTIVE_ACCOUNT_TIME
}
{ expr | UNLIMITED | DEFAULT }
| PASSWORD_VERIFY_FUNCTION
{ function | NULL | DEFAULT }
| ( PASSWORD_ROLLOVER_TIME { expr | DEFAULT } )
}

Oracle-profile简单使用-4

示例:

CREATE PROFILE app_profile LIMIT
FAILED_LOGIN_ATTEMPTS 5 --指定在帐户被锁定之前所允许尝试登陆的的最大次数
PASSWORD_LIFE_TIME 60 --指定同一密码所允许使用的天数
PASSWORD_REUSE_TIME 60 --密码不能重用前的天数
PASSWORD_REUSE_MAX 5
PASSWORD_VERIFY_FUNCTION ora12c_verify_function --允许将复杂的PL/SQL密码验证脚本做为参数传递到create profile语句
PASSWORD_LOCK_TIME 1/24 --登陆尝试失败次数到达后帐户的锁定时间,以天为单位
PASSWORD_GRACE_TIME 10 --宽限天数,数据库发出警告到登陆失效前的天数
INACTIVE_ACCOUNT_TIME 30;

修改自定义 profile

ALTER PROFILE 参数名称 新值;

删除自定义 profile

DROP PROFILE 名称; --删除新创建的 PROFILE
DROP PROFILE 名称 CASCADE; --删除已经创建的 PROFILE 并取消已关联的用户

查询用户对应的配置

SELECT username, profile FROM dba_users;

根据以上语句查出用户的 profile,再查出对应的详细参数:

SELECT * FROM dba_profiles WHERE profile = 'xxx';

分配 profile 给用户

  • 创建用户的同时分配自定义的 profile 给用户

CREATE USER 用户名...... profile名称

  • 用户已创建,需要更改的情况下:

ALTER USER 用户名 PROFILE profile名称;

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论