oracle数据库密码过期怎么办?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle数据库密码过期怎么办?相关的知识,希望对你有一定的参考价值。
参考技术A 按照如下步骤进行操作:\\x0d\\x0a1、查看用户的proifle是哪个,一般是default:\\x0d\\x0asql>Select username,PROFILE FROM dba_users;\\x0d\\x0a2、查看指定概要文件(如default)的密码有效期设置:\\x0d\\x0asql>Select * FROM dba_profiles s Where s.profile=\'DEFAULT\' AND esource_name=\'PASSWORD_LIFE_TIME\';\\x0d\\x0a3、将密码有效期由默认的180天修改成“无限制”:\\x0d\\x0asql>Alter PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;\\x0d\\x0a修改之后不需要重启动数据库,会立即生效。\\x0d\\x0a4、修改后,还没有被提示ORA-28002警告的帐户不会再碰到同样的提示;\\x0d\\x0a 已经被提示的帐户必须再改一次密码,举例如下:\\x0d\\x0a $sqlplus / as sysdba\\x0d\\x0a sql> alter user smsc identified by <原来的密码> ----不用换新密码\\x0d\\x0aoracle11g启动参数resource_limit无论设置为false还是true,密码有效期都是生效的,所以必须通过以上方式进行修改。Oracle:用户可以更改自己的过期密码吗?
【中文标题】Oracle:用户可以更改自己的过期密码吗?【英文标题】:Oracle : Can a User change his own expired password? 【发布时间】:2019-01-09 14:26:35 【问题描述】:我有一个 .Net 应用程序。应用程序用户是数据库用户。
当数据库用户密码过期时,用户无法连接到应用程序(这是正常的)。
目前,当这种情况发生时,DBA 会重置密码:
ALTER USER user_name IDENTIFIED BY new_password;
有没有什么方法可以让用户在不询问 DBA 的情况下更改他的密码?知道应用程序使用 OracleDataAccess 库进行连接,如果密码过期,则不会建立连接。
谢谢, 干杯
【问题讨论】:
这是可能的,但我相信这是用户界面的一个特性。例如,SQL*Plus 允许用户在第一次用户在密码过期后尝试登录时更改她的密码。 【参考方案1】:我得到了解决方案:OpenWithNewPassword
来源:Oracle
Dim con As OracleConnection = New OracleConnection()
Try
con.ConnectionString = "User Id=testexpire;Password=testexpire;Data Source=oracle"
con.Open()
Console.WriteLine("Connected to Oracle" & con.ServerVersion)
Catch ex As OracleException
Console.WriteLine(ex.Message)
If ex.Number = 28001 Then
Console.WriteLine(vbLf & "Changing password to panther")
con.OpenWithNewPassword("panther")
Console.WriteLine("Connected with new password.")
End If
Finally
con.Close()
con.Dispose()
Console.WriteLine("Disconnected")
End Try
【讨论】:
【参考方案2】:这是可能的,但是他们需要使用的方法会因用户在数据库中的权限以及他们有权访问的软件而异。
如果用户系统上安装了 Oracle 客户端,则他们拥有 SQL*Plus。使用 SQL*Plus(或 SQL Developer
或 Toad
之类的应用程序),他们可以连接到数据库并执行以下两项操作之一:
-
发出与 DBA 在 SQL*Plus 提示符下使用的相同的
ALTER USER user_name IDENTIFIED BY new_password;
命令(假设权限未被撤销。)
从 SQL*Plus 提示符发出 password
命令。
如果由于某种原因他们无法使用 SQL*Plus 并且无法访问其他数据库管理软件,您始终可以构建一些自定义的东西,允许他们通过其他方式对其进行更改。这篇 AskTom 文章有一些可以帮助您入门的想法:https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:6589437900346618270
【讨论】:
实际上,我正在寻找可以通过 Oracle DataAccess 库从我的应用程序中使用的东西 :) !你想象如果你的 Messenger 应用程序密码过期并要求你打开一个黑屏 SQL Plus 来更改密码?您的应用程序将如何显示:)? 知道了!不幸的是,是的 - 我帮助支持许多旧版应用程序,因此只需打开命令提示符并启动 SQL*Plus 会话将是一个可喜的变化:/ 尽管如此,很高兴你找到了一个更适合你的解决方案!跨度>以上是关于oracle数据库密码过期怎么办?的主要内容,如果未能解决你的问题,请参考以下文章