Oracle
 sql >> база данни >  >> RDS >> Oracle

Проверете дали паролата на потребителя е валидна или не в plsql

Не мисля, че базата данни на Oracle ви дава API за това. Един kludge, който бихте могли да използвате, е да използвате връзка към база данни за обратна връзка, за да я проверите. Като това:

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;

По-разширените опции биха били да намерите начин да използвате единично влизане / LDAP за вашето Oracle удостоверяване. Тогава вашият проблем става -- как да потвърдя потребителско име/парола в моя LDAP речник, което е много по-лесно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Възможно ли е да се предаде името на таблицата като параметър в Oracle?

  2. Как да декларирам променлива и да я използвам в същия Oracle SQL скрипт?

  3. Как да стартирате Create Table DDL с EXECUTE IMMEDIATE в Oracle Database

  4. Проблеми при инсталиране на Oracle Database Express Edition 11g

  5. Групиране по ID с изключение на NULL записите