我有一个.Net应用程序。应用程序用户是数据库用户。
当数据库用户的密码过期时,该用户将无法连接到应用程序(正常)。
当前发生这种情况时,DBA会重置密码:
ALTER USER用户名由new_password标识;
用户是否可以通过任何方式更改密码而无需询问DBA?知道该应用程序使用OracleDataAccess库进行连接,并且如果密码过期,则表示未建立连接。
谢谢, 干杯
答案 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 Developer
或Toad
之类的应用程序),他们可以连接到数据库并执行以下两项操作之一:
ALTER USER user_name IDENTIFIED BY new_password;
命令(假定特权尚未撤消。)password
命令。 如果由于某种原因他们不能使用SQL * Plus,并且没有访问其他数据库管理软件的权限,则可以随时构建一些自定义的东西,使他们可以通过其他方式对其进行更改。这篇AskTom文章提供了一些可能的想法来帮助您入门:https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:6589437900346618270