Наконец-то я нашел решение своей проблемы. Вот пункты для каждой информации:
1) Является ли льготный период истечения сверх даты истечения?
Ответ: Да, это выше и выше.
2) Когда пользователь находится в льготном периоде, он может изменить свой пароль, используя запрос «ALTER USER XYZ, ОПРЕДЕЛЕННЫЙ SOMEPWD», или ему все еще нужно связаться с администратором базы данных.
Ответ: Ни один пользователь не может выполнить этот запрос, потому что он сначала требует подключения к базе данных. С истекшим паролем вы не можете подключиться.
3) Как я могу обработать предупреждение оракула ORA-28002 (когда пользователь находится в льготном периоде) в клиенте c #. делает это вообще передается клиенту c #. Будет ли это обрабатываться как исключение (try-catch).
Ответ: Ошибка ORA-28002 может быть обработана в клиенте c # как OracleClientInfoMessage. Вот пример кода.
try
{
OracleConnection conn = new OracleConnection("User ID=" + uid + ";Password=" + pwd + ";SERVER=" + server);
conn.InfoMessage += new OracleInfoMessageEventHandler(GetOracleWarningInfoMessage);
conn.Open();
return ConnectionStatus.OK;
}
catch (System.Data.OracleClient.OracleException ex)
{
Logger.Error(ex);
switch (ex.Code)
{
case 1005: //null password given
errmsg = "Invalid password";
return ConnectionStatus.InvalidUserPwd;
case 1017: //invalid username/password
errmsg = "Invalid username/password";
return ConnectionStatus.InvalidUserPwd;
case 1040: //invalid character in password
errmsg = "Invalid password";
return ConnectionStatus.InvalidUserPwd;
case 28000://account locked
errmsg = "Account locked. Contact DBA or wait for PASSWORD_LOCK_TIME";
return ConnectionStatus.Locked;
case 28001://password expired
errmsg = "Password expired. Contact DBA";
return ConnectionStatus.Expired;
default:
errmsg = ex.Message;
return ConnectionStatus.Failed;
}
}
4) Если срок действия пароля уже истек, то только администратор базы данных может изменить ваш пароль.
Ответ: Пользователь может изменить пароль самостоятельно. Если вы используете драйвер SQLPlus или ODP.net, вы получите приглашение. Однако, если вы используете драйвер OracleClient (Microsoft), вы не сможете этого сделать, поскольку в нем отсутствует функция OpenWithNewPassword (которая позволяет сменить пароль перед установлением соединения). Вероятно, из-за отсутствия сотрудничества между Mircosoft и Oracle.
Поддержка OpenWithNewPassword доступна только в драйвере ODP (OracleDataProvider) и собственном OCL. Подробнее см. По ссылке: MSDN или Oracle .
5) блокируется ли учетная запись и после истечения срока действия, превышающего льготный период.
Ответ: Нет, срок действия истек, не заблокирован.