oracle 12c密码长度,复杂度查看与设置

密码长度和复杂度

Oracle 数据库通过 PASSWORD_VERIFY_FUNCTION 来控制密码复杂度。

1.1 查看当前的密码复杂度设置

SELECT * FROM dba_profiles WHERE resource_name ='PASSWORD_VERIFY_FUNCTION';

LIMIT表示分配给该 PROFILE 的密码验证函数名称。如果为 NULL,表示未设置密码验证函数。

上面输出说明DEFAULT这个配置文件没有配置密码长度和复杂度验证,ORA_STIG_PROFILE配置了ORA12C_STIG_VERIFY_FUNCTION这个密码长度和复杂度验证函数。

ORA12C_STIG_VERIFY_FUNCTION 是 Oracle 数据库 12c 中提供的一种密码验证函数,用于实施符合安全技术实施指南(STIG)的密码策略。

ORA12C_STIG_VERIFY_FUNCTION要求长度至少15,至少一个大写字母,一个小写字母,一个特殊字符。

#验证

当创建用户的时候,没指定profile,则使用默认的default,此时可以创建弱口令账号:

create user baidd_test identified by 123456;

grant connect,resource to baidd_test;

当指定有密码验证函数的配置文件时,无法创建弱口令账号:

create user baidd_test2  identified by 123456 profile ORA_STIG_PROFILE;

#查看用户使用的是哪个配置文件

SQL>  select username,profile from dba_users

USERNAME   PROFILE
---------- ------------------------------
SYS        DEFAULT
SYSTEM     DEFAULT
……

1.2 设置密码复杂度

#将default配置文件绑定密码复杂度函数

语法:

ALTER PROFILE your_profile_name LIMIT PASSWORD_VERIFY_FUNCTION 密码复杂度函数;

这里是:

ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION ORA12C_STIG_VERIFY_FUNCTION;

这个修改只对新建的用户生效,不影响已建的弱口令账号的正常使用,但若修改老用户的密码,也需要满足密码复杂度:

/*

假如要还原回去,则这样设置:

ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION NULL;

*/

二 密码有效期

密码有效期通过 PASSWORD_LIFE_TIME 参数控制,可以通过以下查询查看:

SELECT profile, resource_name, limit FROM dba_profiles WHERE resource_name = 'PASSWORD_LIFE_TIME';

LIMIT 列:显示密码的有效期(以天为单位)。UNLIMITED 表示密码永不过期。

最大尝试登录次数

SELECT profile, resource_name, limit FROM dba_profiles WHERE resource_name = 'FAILED_LOGIN_ATTEMPTS';

LIMIT 列:显示允许的最大失败登录次数。

新旧密码重复度

SELECT profile, resource_name, limit FROM dba_profiles WHERE resource_name IN ('PASSWORD_REUSE_MAX', 'PASSWORD_REUSE_TIME');

PASSWORD_REUSE_MAX:表示密码在多少次更改后可以被重复使用。

PASSWORD_REUSE_TIME:表示密码在多少天后可以被重复使用。

#修改示例

ALTER PROFILE DEFAULT LIMIT PASSWORD_REUSE_MAX 10;
ALTER PROFILE DEFAULT LIMIT PASSWORD_REUSE_TIME 365;

/*

假如要还原回去,则这样修改:

ALTER PROFILE DEFAULT LIMIT PASSWORD_REUSE_MAX UNLIMITED;
ALTER PROFILE DEFAULT LIMIT PASSWORD_REUSE_TIME UNLIMITED;

*/

五 锁定次数,锁定时间

锁定次数:由 FAILED_LOGIN_ATTEMPTS 参数控制,表示用户连续失败登录多少次后会被锁定。

锁定时间:通过 PASSWORD_LOCK_TIME 参数控制。

select * FROM dba_profiles WHERE resource_name IN ('FAILED_LOGIN_ATTEMPTS','PASSWORD_LOCK_TIME');

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

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

相关文章

指定运行级别

linux系统下有7种运行级别,我们需要来了解一下常用的运行级别,方便我们熟悉以后的部署环境,话不多说,来看. 开机流程: 指定数级别 基本介绍 运行级别说明: 0:关机 相当于shutdown -h now ⭐️默认参数不能设置为0,否则系统无法正常启动 1:单用户(用于找回丢…

Appium工作原理及环境的搭建(1)

1、Appium的介绍: 一、什么是Appium Desktop? Appium Desktop是Appium项目的桌面版GUI工具,提供了一个友好的界面,用于启动Appium服务器、查看设备日志、与设备交互、调试自动化脚本等。相比于命令行工具,Appium Des…

esp32cam远程图传:AI Thinker ESP32-CAM -》 服务器公网 | 服务器 -》 电脑显示

用AI Thinker ESP32-CAM板子访问公网ip的5112端口并上传你的摄像头拍摄的图像视频数据,并写一段python程序打开弹窗接受图像实现超远程图像传输教程免费 1. 首先你要有一个公网ip也就是去买一台拥有公网的服务器电脑,我买的是腾讯云1年38元的服务器还可…

【Pandas】pandas DataFrame copy

Pandas2.2 DataFrame Conversion 方法描述DataFrame.astype(dtype[, copy, errors])用于将 DataFrame 中的数据转换为指定的数据类型DataFrame.convert_dtypes([infer_objects, …])用于将 DataFrame 中的数据类型转换为更合适的类型DataFrame.infer_objects([copy])用于尝试…

缓存相关问题

Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制 Redis 为什么…

2025年AI开发学习路线

目录 一、基础阶段(2-3个月) 1. 数学与编程基础 2. 机器学习入门 二、核心技能(3-4个月) 1. 深度学习与框架 2. 大模型开发(重点) 三、进阶方向(3-6个月) 1. 多模态与智能体…

SvelteKit 最新中文文档教程(19)—— 最佳实践之身份认证

前言 Svelte,一个语法简洁、入门容易,面向未来的前端框架。 从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1: Svelte …

【Kafka基础】消费者命令行完全指南:从基础到高级消费

Kafka消费者是消息系统的关键组成部分,掌握/export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-console-consumer.sh工具的使用对于调试、测试和监控都至关重要。本文将全面介绍该工具的各种用法,帮助您高效地从Kafka消费消息。 1 基础消费模式 1.1 从最…

CausalML 基于机器学习算法的因果推理方法

CausalML 是一个 Python 包,它使用基于最新研究的机器学习算法提供一套提升建模和因果推理方法。它提供了一个标准界面,允许用户从实验或观察数据中估计条件平均处理效应 (CATE),也称为个体治疗效应 (ITE&a…

解锁深度学习激活函数

在深度学习的广袤天地里,激活函数宛如隐匿于神经网络架构中的神奇密码,掌控着模型学习与表达的关键力量。今天,就让我们一同深入探究这些激活函数的奇妙世界,揭开它们神秘的面纱。 一、激活函数为何不可或缺? 想象一…

从零到有的游戏开发(visual studio 2022 + easyx.h)

引言 本文章适用于C语言初学者掌握基本的游戏开发, 我将用详细的步骤引领大家如何开发属于自己的游戏。 作者温馨提示:不要认为开发游戏很难,一些基本的游戏逻辑其实很简单, 关于游戏的开发环境也不用担心,我会详细…

大数据专业学习路线

大数据专业学习路线 目录 基础知识核心技术进阶技能实战项目职业发展学习资源学习计划常见问题 1. 基础知识 1.1 编程语言 Python:大数据分析的基础语言 基础语法和数据类型函数和模块面向对象编程文件操作和异常处理常用库:NumPy, Pandas, Matplot…

flink部署使用(flink-connector-jdbc)连接达梦数据库并写入读取数据

flink介绍 1)Apache Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink 被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算。 2)在实时计算或离线任务中,往往需要…

用swift playground写个ios应用和大模型或者网站交互

import SwiftUIstruct ContentView: View {State private var textFieldText: String ""State private var outputText: String "输出将会显示在这里"private let tip:String "消息已发送,请等待"State private var history:[Stri…

springboot+vue2集成JWT token实现权限验证

前端项目搭建参考: Vue项目的搭建和启动_vue项目启动 csdn-CSDN博客 Vue ElementUI 登录页面_vue用户登录页面-CSDN博客 跨域问题前端解决-CSDN博客 实现思路: 1. 实现的目的:为了保护网站安全信息,使用jwt进行权限验证&#xf…

Cursor编程-从入门到精通__0409

早期的Github Copilot 最近更新了,支持Agent编程,字节跳动Trae使用(免费),但成熟程度不如Cursor,Cursor前50次免费 Copilot VS Cursor*** 1,Cursor VSCode 二次开发,IDE级别 2&…

MyBatis 详解及代码示例

MyBatis 是一个 半自动 ORM 框架,主要用于 Java 与数据库之间的持久化操作,它本质是对 JDBC 的封装 全名:MyBatis(前身 iBATIS)核心作用:自动将 SQL 执行结果映射为 Java 对象;也可以将 Java 对…

1.6-抓包技术(Burp Suite\Yakit抓包\Web、APP、小程序)

1.6-抓包技术(Burp Suite\Yakit抓包\Web、APP、小程序) 如果要使用抓包软件,基本上第一步都是要安装证书的。原因如下: 客户端(浏览器或应用)会检测到证书不受信任,并弹出 证书错误&#xff0…

Java 大视界 -- 基于 Java 的大数据隐私保护在金融客户信息管理中的实践与挑战(178)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

第十届 蓝桥杯 嵌入式 省赛

一、分析 这届的真题,有点像第七届的液位检测。 这届的题目开始,貌似比赛描述的功能,逻辑上变得更好梳理了。一开始就把大致的功能给你说明一遍,不像之前都是一块一块的说明。 1. 基本功能 1)测量竞赛板上电位器 R…