sql >> Database teknologi >  >> RDS >> Oracle

Kontroller, at brugerens adgangskode er gyldig eller ej i plsql

Jeg tror ikke, at Oracle-databasen giver dig en API til at gøre dette. En kludge du kunne bruge ville være at bruge et loopback-databaselink til at kontrollere det. Sådan:

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;

Mere avancerede muligheder ville være at finde en måde at bruge enkelt signon / LDAP til din Oracle-godkendelse. Så bliver dit problem -- hvordan validerer jeg et brugernavn/adgangskode i min LDAP-ordbog, hvilket er meget nemmere.



  1. Hvordan vælger man rækker med kolonneværdien null?

  2. hvordan sender man mail fra mysql ved hjælp af lagrede procedurer?

  3. Makulering af XML fra udførelsesplaner

  4. overvågning af mysql for ændringer