Определите текущее шифрование оракула - PullRequest
0 голосов
/ 30 августа 2018

В настоящее время я запускаю приложения в Oracle WebDB , созданной с использованием PL / SQL. Единственный доступ - сменить пароль пользователя для WebDB в Oracle Enterprise Manager Console , установленной на моем ПК. Наша веб-консоль и страница смены пароля для пользователей больше не доступны.

Я пытаюсь написать новую страницу смены пароля. Можно ли как-нибудь узнать, какой тип шифрования консоль OEM использует для обновления таблицы sys.user$, чтобы я мог скопировать ее на своей новой странице смены пароля?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Вы не можете напрямую обновлять представление SYS.USER$. И это не шифрование, оно использует хеширование .

Используйте ALTER USER <username> identified by <user_password> операторы из PL / SQL. Затем пароль хэшируется и сохраняется так, как вы видите его в представлении SYS.USER$. Вы должны сделать их динамическими, используя синтаксис EXECUTE IMMEDIATE:

DECLARE
  dml_create_user VARCHAR2(256) := ''; 
  s_user_to_create := 'ju' ;
  s_user_password := 'the_passwd' ;
BEGIN
  dml_create_user := 
      'create user '||s_user_to_create
   || 'identified by '||s_user_password
   || ' default tablespace TSR01 '
   || ' temporary tablespace TST01 '
   || '  profile DEFAULT ' ;

  EXECUTE IMMEDIATE dml_create_user  ; 
END; 
0 голосов
/ 30 августа 2018

Вы можете использовать динамический sql в PLSQL для выполнения правильных

'Alter user -user- identified by "password";' 

заявление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...