Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Sprawdź, czy hasło użytkownika jest prawidłowe, czy nie w plsql

Nie sądzę, aby baza danych Oracle zapewniała API do tego. Jedną z rzeczy, których możesz użyć, byłoby użycie łącza do bazy danych pętli zwrotnej, aby to sprawdzić. Tak:

DECLARE
  p_username        VARCHAR2 (30) := 'MMCP';  -- Change to the user whose password you are validating
  p_test_password   VARCHAR2 (30) := 'NOT_MY_PASSWORD';  
  p_loopback_connection_string VARCHAR2(80) := 'ORCLQA';  -- Change this for your environment
BEGIN

  BEGIN
    EXECUTE IMMEDIATE q'[drop database link password_test_loopback]';
  EXCEPTION
    WHEN OTHERS THEN
      NULL;
  END;

  EXECUTE IMMEDIATE
    'create database link password_test_loopback connect to "' || p_username || '" identified by "' || p_test_password || '" using ''' || p_loopback_connection_string || '''';

  EXECUTE IMMEDIATE q'[SELECT * FROM [email protected]_test_loopback]';

  EXECUTE IMMEDIATE q'[drop database link password_test_loopback]';
  
  dbms_output.put_line('Password is good');
EXCEPTION WHEN OTHERS THEN
  IF SQLCODE = -1017 THEN
    DBMS_OUTPUT.PUT_LINE('Password is wrong');
  ELSE
    raise;
  END IF;
END;

Bardziej zaawansowane opcje to znalezienie sposobu na użycie pojedynczego logowania / LDAP do uwierzytelniania Oracle. Wtedy twój problem staje się -- jak zweryfikować nazwę użytkownika/hasło w moim słowniku LDAP, co jest znacznie prostsze.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak korzystać z adresu URL tłumaczenia Google w Oracle plsql

  2. PostgreSQL - składnia zapytania bez cudzysłowów

  3. Nowe terminy bezpłatnych egzaminów certyfikacyjnych w Oracle Cloud i Autonomous Database

  4. LAST_NUMBER w sekwencji wyroczni

  5. Jak za pomocą Oracle przeprowadzić audyt usunięć w określonej tabeli?