Oracle: может ли пользователь изменить свой пароль с истекшим сроком действия? - PullRequest
0 голосов
/ 09 января 2019

У меня есть приложение .Net. Пользователь приложения является пользователем базы данных.

Когда срок действия пароля пользователя базы данных истекает, пользователь не может подключиться к приложению (что является нормальным).

В настоящее время, когда это происходит, администратор базы данных сбрасывает пароль:

ALTER USER user_name IDENTIFIED BY new_password;

Может ли пользователь изменить свой пароль, не спрашивая администратора? зная, что приложение подключается с использованием библиотеки OracleDataAccess и, если срок действия пароля истекает, соединение не установлено.

Спасибо, Приветствия

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Это возможно, однако, метод, который им нужно использовать, будет зависеть от разрешений пользователя в базе данных и программного обеспечения, к которому он имеет доступ.

Если в системе пользователей установлен клиент Oracle, он имеет SQL * Plus. Используя SQL * Plus (или приложение типа SQL Developer или Toad,), они могут подключаться к базе данных и выполнять одно из двух действий:

  1. Введите ту же команду ALTER USER user_name IDENTIFIED BY new_password;, которую использует администратор базы данных из приглашения SQL * Plus (при условии, что права не были отозваны).
  2. Введите команду password из приглашения SQL * Plus.

Если по какой-либо причине они не могут использовать SQL * Plus и не имеют доступа к другому программному обеспечению для управления базами данных, вы всегда можете создать что-то нестандартное, что позволит им изменить его другими способами. В этой статье AskTom есть несколько возможных идей для начала: https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:6589437900346618270

0 голосов
/ 09 января 2019

Я получил решение: 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...