Oracle:用户可以更改自己的过期密码吗?

时间:2019-01-09 14:26:35

标签: .net oracle

我有一个.Net应用程序。应用程序用户是数据库用户。

当数据库用户的密码过期时,该用户将无法连接到应用程序(正常)。

当前发生这种情况时,DBA会重置密码:

  

ALTER USER用户名由new_password标识;

用户是否可以通过任何方式更改密码而无需询问DBA?知道该应用程序使用OracleDataAccess库进行连接,并且如果密码过期,则表示未建立连接。

谢谢, 干杯

2 个答案:

答案 0 :(得分:3)

我找到了解决方案: 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

答案 1 :(得分:0)

这是可能的,但是,他们需要使用的方法会因用户在数据库中的权限以及他们有权访问的软件而异。

如果用户系统上安装了Oracle客户端,则他们具有SQL * Plus。使用SQL * Plus(或诸如SQL DeveloperToad之类的应用程序),他们可以连接到数据库并执行以下两项操作之一:

  1. 在SQL * Plus提示符下发出DBA使用的同一ALTER USER user_name IDENTIFIED BY new_password;命令(假定特权尚未撤消。)
  2. 从SQL * Plus提示符下发出password命令。

如果由于某种原因他们不能使用SQL * Plus,并且没有访问其他数据库管理软件的权限,则可以随时构建一些自定义的东西,使他们可以通过其他方式对其进行更改。这篇AskTom文章提供了一些可能的想法来帮助您入门:https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:6589437900346618270