百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

Oracle中如何设置用户的密码永不过期

sinye56 2024-09-16 14:24 4 浏览 0 评论

关注我「程序猿集锦」,获取更多分享。

  • 背景
  • 解决方案
  • 具体操作步骤
  • 总结

背景

在我们创建业务系统使用的Oracle数据库账号的时候,我们不希望这个账号的密码过期,因为我们不想在系统运行的某一天出现连接不上数据库的情况。

在MySQL数据库中,创建用户的时候,如果不显示的声明密码的有效期,则新创建的用户的密码将会是永不过期的,除非你显示的声明它的密码的有效期才是多久,它才会创建这个用户的时候为其设置密码的有效期。但是在Oracle中则不同,Oracle需要通过profile来控制用户密码的有效期,在创建用户的时候,如果不显示的为用户指定profile,则会使用默认的profile,而这个默认的profile中定义了密码的有效期为180天。言外之意,在不声明profile的时候,Oracle中创建的用户的密码有效期为180天。

我们可以去修改默认的profile的密码的有效期为unlimited,表示永不过期,但是这样将会导致凡是使用这个默认profile的所有用户的密码都会变成永不过期。这个和我们的意愿有点矛盾,因为我们只想让业务系统使用的账号的密码永不过期,其他个人的账号则保持原先的默认180天的有效期。

问题就转为:在Oracle中,如果想设置某一个用户或某几个用户的密码永不过期,我们该怎么设置?

解决方案

如前面所讲,Oracle中控制用户的密码相关配置的功能是通过为每一个用配置一个profile来实现的,在profile中可以指定密码的具体配置情况。默认情况下,在创建用户的时候如果不显示的为这个新创建的用户指定profile,那么就是使用名称为default的profile,所以在一般情况下,我们去查看用户的profile的时候,一般都会显示为default。而这个default的profile对密码有效的配置是180天,也就是使用defaultprofile的用户,他们的密码有效期为180天。

  • 通过下面的命令可以查看用户使用的是哪一个profile。
select * from dba_users;
select username, profile from dba_users
  • 通过下面的命令可以查看当前数据库中所有的profile。
SELECT * FROM dba_profiles order by profile;

那么我们可以在创建用户之前,先创建一个密码永不过期的profile,然后再创建用户的时候,凡是需要设置密码永不过期的用户,都指定它们使用这个密码永不过期的profile就可以了。

具体操作步骤

  • 查看当前所有的profile有哪些
SELECT * FROM dba_profiles order by profile;
SELECT profile, count(1) FROM dba_profiles group by profile order by profile;
  • 查看用户的profile是什么配置,如果在创建用户的时候,没有做显示的声明,默认情况一般为default的profile。
select * from dba_users;
  • 创建一个profile,指定这个profile的配置如下,其中关于PASSWORD_LIFE_TIME的值,从180改为unlimited,表示密码有效期为永久。
create profile password_never_expire_profile 
limit
COMPOSITE_LIMIT	UNLIMITED
SESSIONS_PER_USER	UNLIMITED
CPU_PER_SESSION	UNLIMITED
CPU_PER_CALL	UNLIMITED
LOGICAL_READS_PER_SESSION	UNLIMITED
LOGICAL_READS_PER_CALL	UNLIMITED
IDLE_TIME	UNLIMITED
CONNECT_TIME	UNLIMITED
PRIVATE_SGA	UNLIMITED
FAILED_LOGIN_ATTEMPTS	10
PASSWORD_LIFE_TIME	UNLIMITED
PASSWORD_REUSE_TIME	UNLIMITED
PASSWORD_REUSE_MAX	UNLIMITED
PASSWORD_VERIFY_FUNCTION	NULL
PASSWORD_LOCK_TIME	1
PASSWORD_GRACE_TIME	7
INACTIVE_ACCOUNT_TIME	UNLIMITED;
  • 修改用户指定用户的profile为新创建的profile。
alter user myuser profile password_never_expire_profile;
  • 再次查看指定用户的profile是否已经修改。
select * from dba_users;

总结

为了解决Oracle中指定用户使用的密码永不过期的问题,我们特意为这样的用户创建了一个通用的profile,在这个profile中指定了凡是使用这个profile的用户的密码都是永不过期的。这样我们在创建用户的时候,为其指定使用密码永不过期的profile就可以了。对已经创建好但是密码还没有过期的用户,我们只要修改他们的profile为密码永远不过期的profile就可以了。

注意:对于那些密码已经过期了的用户,即便是我们修改了它们的profile为密码永远不过期的profile,但是它们还是会出现密码过期的提示,这个时候就需要通过下面的密码重新修改一下他们的密码就可以永远不再过期了,修改的时候,可以把密码修改为原先已经过期的那个密码。

alter user myuser identified by "old password";

相关推荐

Linux两种光驱自动挂载的方法

环境:CentOS6.4西昆云服务器方式一修改fstab文件/etc/fstab是系统保存文件系统信息?静态文件,每一行描述一个文件系统;系统每次启动会读取此文件信息以确定需要挂载哪些文件系统。参...

linux系统运维,挂载和分区概念太难?在虚机下操作一次全掌握

虚拟机的好处就是可以模拟和学习生产环境的一切操作,假如我们还不熟悉磁盘操作,那先在虚机环境下多操作几次。这次来练习下硬盘扩容操作。虚拟机环境:centos8vm11linux设备命名规则在linux中...

Linux 挂载 NFS 外部存储 (mount 和 /etc/fstab)

mount:手工挂载,下次重启需再重新挂载,操作命令:mount-tnfs-ooptionsserver:/remote/export/local/directory上面命令中,本地目录...

在Linux中如何设置自动挂载特定文件系统(示例)

Linux...

Linux环境中的绑定挂载(bind mount)

简介:Linux中的mount命令是一个特殊的指令,主要用于挂载文件目录。而绑定挂载(bindmount)命令更为特别。mount的bind选项将第一个目录克隆到第二个。一个目录中的改变将会在...

Linux挂载CIFS共享 临时挂载 1. 首先

如何解决服务器存储空间不足的问题?大家好,欢迎回来。在上一期视频中,我为大家介绍了如何利用Linux挂载来扩容服务器存储空间。这一期视频,我将以Linux为例,教大家如何进行扩容。群辉使用的是Linu...

Linux 硬盘挂载(服务器重启自动挂载)

1、先查看目前机器上有几块硬盘,及已挂载磁盘:fdisk-l能够查看到当前主机上已连接上的磁盘,以及已经分割的磁盘分区。(下面以/dev/vdb磁盘进行分区、挂载为例,挂载点设置为/data)df...

linux 挂载磁盘

在Linux中挂载硬盘的步骤如下:...

笨小猪教您Linux磁盘挂载

本教程针对Linux系统比较熟悉或者想学习Linux基础的用户朋友,本教程操作起来比较傻瓜式,跟着步骤就会操作,本文使用的工具是XShell同时多多注意空格(文中会有提示)。【问答】什么是磁盘挂载?答...

Linux 磁盘挂载和docker安装命令

本篇给大家介绍Linux磁盘挂载和docker安装的相关内容,Linux服务器的操作是一个手熟的过程,一些不常用的命令隔断时间就忘记了,熟话说好记性不如烂笔头,还需在平时的工作中多练习记录。...

Linux设置开机自动挂载分区

有时候,我们在安装完Linux系统之后,可能在使用过程中添加硬盘或者分区进行使用,这时候就需要手动把磁盘分区挂载到某个路径,但是开机之后就会消失,需要重新挂载,非常麻烦,那么我们应该如何设置开机自动挂...

在linux挂载一个新硬盘的完整步骤

以下是在Linux中挂载新原始磁盘的完整步骤,包括分区、创建文件系统以及使用UUID在/etc/fstab中启动时挂载磁盘:将新的原始磁盘连接到Linux系统并打开电源。运行以下命令,...

Linux系统如何挂载exFAT分区

简介:Linux系统中不能像Windows系统那样自动识别加载新设备,需要手动识别,手动加载。Linux中一切皆文件。文件通过一个很大的文件树来组织,文件树的根目录是:/,从根目开始录逐级展开。这些文...

Linux系统挂载硬盘

fdisk-l查看可挂载的磁盘都有哪些df-h查看已经挂载的磁盘...

WSL2发布,如何在Win10中挂载Linux文件系统

WSL2是最新版本的架构,它为Windows子系统提供支持,使其能够在Windows上运行ELF64Linux二进制文件。通过最近的更新,它允许使用Linux文件系统访问存储在硬盘中的文件。如果你...

取消回复欢迎 发表评论: