sql >> Databáze >  >> RDS >> Oracle

Zkontrolujte, zda je heslo uživatele platné nebo ne v plsql

Nemyslím si, že databáze Oracle vám k tomu poskytuje API. Jednou z věcí, kterou byste mohli použít, by bylo použití odkazu na databázi zpětné smyčky ke kontrole. Takhle:

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;

Pokročilejšími možnostmi by bylo najít způsob, jak používat jednotné přihlášení / LDAP pro autentizaci Oracle. Pak se váš problém stává -- jak mohu ověřit uživatelské jméno/heslo v mém slovníku LDAP, což je mnohem jednodušší.



  1. Jak získat vysoký výkon při velké transakci (postgresql)

  2. Pokročilá nápověda k návrhu dotazu SQL (Duplikáty ve dvou tabulkách, více polích, možná vyloučení na základě jednoho pole)

  3. PHP Multidimenzionální pole do neuspořádaného seznamu, vytváření adresy URL

  4. Knex.js – Jak vytvořit jedinečný index s klauzulí „kde“?