在 Oracle 数据库中,profile
是一个与用户关联的配置集合,用于控制用户账户的资源使用情况和密码策略。例如,profile
可以定义用户的密码过期时间、账户锁定策略、并发会话数限制等。
简单来说,profile
是一组规则的集合,这些规则可以应用到一个或多个数据库用户,从而限制或管理他们的行为。
1. profile
的作用
每个数据库用户都可以被分配到一个特定的 profile
,这些 profile
决定了用户使用数据库资源的限制以及密码策略。例如:
- 资源限制:控制用户的 CPU 时间、会话数、I/O 操作等。
- 密码策略:设置密码的有效期、复杂性要求、失败登录后的锁定策略等。
2. 查询语句中 profile
的含义
在以下查询中:
SELECT profile, resource_name, limit
FROM dba_profiles
WHERE resource_name IN ('PASSWORD_LIFE_TIME', 'FAILED_LOGIN_ATTEMPTS', 'PASSWORD_LOCK_TIME');
profile
:表示某个用户使用的配置集合名称。例如,可能的值包括DEFAULT
(系统默认的配置)或自定义的profile
名称。resource_name
:表示资源或密码策略的名称。例如:PASSWORD_LIFE_TIME
:密码的有效期。FAILED_LOGIN_ATTEMPTS
:允许的最大登录失败次数。PASSWORD_LOCK_TIME
:账户被锁定后的解锁时间。
limit
:表示对应的资源或策略的具体限制值。例如:PASSWORD_LIFE_TIME
的值可以是30
(天数)或UNLIMITED
。FAILED_LOGIN_ATTEMPTS
的值可以是5
(允许的失败次数)。PASSWORD_LOCK_TIME
的值可以是1
(1天)或UNLIMITED
。
3. DEFAULT
Profile
Oracle 默认提供一个名为 DEFAULT
的 profile
,系统中所有新创建的用户都会自动分配到这个 profile
,除非明确指定了其他 profile
。
在默认配置下:
PASSWORD_LIFE_TIME
:通常为UNLIMITED
(密码不会过期)或者根据安全策略调整。FAILED_LOGIN_ATTEMPTS
:通常默认为10
(超过 10 次失败会锁定用户账户)。PASSWORD_LOCK_TIME
:通常为1
(1天后解锁),但也可能是UNLIMITED
(手动解锁)。
要查看 DEFAULT
profile 的配置,可以执行以下查询:
SELECT profile, resource_name, limit
FROM dba_profiles
WHERE profile = 'DEFAULT';
4. 用户与 profile
的关联
每个数据库用户都被分配到一个 profile
,可以通过以下查询查看用户所属的 profile
:
SELECT username, profile
FROM dba_users;
5. 管理 profile
a. 创建自定义 Profile
如果需要创建一个自定义的 profile
,可以使用以下命令:
CREATE PROFILE my_profile LIMIT
PASSWORD_LIFE_TIME 30
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LOCK_TIME 1;
这会创建一个名为 my_profile
的配置,设置以下限制:
- 密码有效期为 30 天。
- 登录失败 5 次后账户会被锁定。
- 锁定账号 1 天后自动解锁。
b. 分配 Profile 给用户
可以通过以下命令将用户分配到指定的 profile
:
ALTER USER username PROFILE my_profile;
c. 修改 Profile
如果需要调整现有 profile
的配置,可以使用以下命令:
ALTER PROFILE my_profile LIMIT
PASSWORD_LIFE_TIME 60;
这会将 my_profile
的密码有效期改为 60 天。
d. 删除 Profile
只有当没有用户使用一个 profile
时,才能删除它。删除一个 profile
的命令如下:
DROP PROFILE my_profile CASCADE;
CASCADE
表示同时删除与该 profile
相关联的所有限制。
6. 示例输出解释
假设执行以下查询:
SELECT profile, resource_name, limit
FROM dba_profiles
WHERE resource_name IN ('PASSWORD_LIFE_TIME', 'FAILED_LOGIN_ATTEMPTS', 'PASSWORD_LOCK_TIME');
可能的结果为:
PROFILE | RESOURCE_NAME | LIMIT |
---|---|---|
DEFAULT | PASSWORD_LIFE_TIME | UNLIMITED |
DEFAULT | FAILED_LOGIN_ATTEMPTS | 10 |
DEFAULT | PASSWORD_LOCK_TIME | 1 |
MY_PROFILE | PASSWORD_LIFE_TIME | 30 |
MY_PROFILE | FAILED_LOGIN_ATTEMPTS | 5 |
MY_PROFILE | PASSWORD_LOCK_TIME | 1 |
解释:
DEFAULT
是系统默认配置,密码不会过期(UNLIMITED
),登录失败 10 次会锁定账户,锁定 1 天后自动解锁。MY_PROFILE
是自定义的profile
,密码有效期为 30 天,登录失败 5 次后锁定账户,账户 1 天后解锁。
7. 总结
profile
是用户的一组配置规则,用于管理数据库资源使用和密码策略。- 每个用户可以分配到一个
profile
,如果未指定,则默认使用DEFAULT
profile。 - 通过查询
DBA_PROFILES
和DBA_USERS
,可以查看 profile 的配置和用户分配情况。 - 可以创建、修改或删除自定义 profile,以满足特定的安全和资源管理需求。
如果有进一步的问题,请随时告诉我!
标签:profile,DEFAULT,用户,---,密码,TIME,Oracle,PASSWORD From: https://www.cnblogs.com/hujunwei/p/18672532