sql >> データベース >  >> RDS >> Oracle

plsqlでユーザーのパスワードが有効かどうかを確認してください

    Oracleデータベースがこれを行うためのAPIを提供するとは思わない。使用できる問題の1つは、ループバックデータベースリンクを使用してチェックすることです。このように:

    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;
    

    より高度なオプションは、Oracle認証にシングルサインオン/LDAPを使用する方法を見つけることです。次に、問題は次のようになります。LDAP辞書でユーザー名/パスワードを検証するにはどうすればよいですか。これははるかに簡単です。



    1. varbinaryを文字列に変換するSQLServer

    2. 表のシーケンス番号

    3. MySQLテーブルでの複数の結合

    4. SQLテーブルからSQLでピボットビューを作成する