Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Periksa kata sandi pengguna valid atau tidak di plsql

Saya tidak berpikir database Oracle memberi Anda API untuk melakukan ini. Satu kludge yang dapat Anda gunakan adalah menggunakan tautan basis data loopback untuk memeriksanya. Seperti ini:

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;

Opsi lebih lanjut adalah menemukan cara untuk menggunakan sistem masuk tunggal / LDAP untuk otentikasi Oracle Anda. Kemudian, masalah Anda menjadi -- bagaimana cara memvalidasi nama pengguna/kata sandi di kamus LDAP saya, yang jauh lebih mudah.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kueri SQL untuk menemukan baris dengan setidaknya satu dari nilai yang ditentukan

  2. Pisahkan string di Oracle dengan regexp_substr secara berurutan

  3. Tidak dapat terhubung ke Oracle DB mendapatkan kesalahan sebagai java.sql.SQLException:Pengecualian Io:Adaptor Jaringan tidak dapat membuat koneksi

  4. Membuat tabel dari kueri menggunakan tablespace yang berbeda (Oracle SQL)

  5. Ganti REGEXP_SUBSTR di SQL Server