Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Kiểm tra mật khẩu của người dùng có hợp lệ hay không trong plsql

Tôi không nghĩ rằng cơ sở dữ liệu Oracle cung cấp cho bạn một API để làm điều này. Một k bùn bạn có thể sử dụng là sử dụng một liên kết cơ sở dữ liệu lặp lại để kiểm tra nó. Như thế này:

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;

Các tùy chọn nâng cao hơn sẽ là tìm cách sử dụng ký hiệu đơn / LDAP để xác thực Oracle của bạn. Sau đó, vấn đề của bạn trở thành - làm cách nào để xác thực tên người dùng / mật khẩu trong từ điển LDAP của tôi, điều này dễ dàng hơn nhiều.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cú pháp Oracle - chúng ta có nên chọn giữa cái cũ và cái mới không?

  2. Sử dụng một câu lệnh trường hợp trong một ràng buộc kiểm tra

  3. Oracle 11g trên Mac OS X

  4. Bảng BIN $ ... trong bảng ALL_TAB_COLUMNS của Oracle là gì?

  5. Trình tự Oracle bắt đầu bằng 2 thay vì 1