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

Oracleでパスワードフィールドを作成する

    「安全な外部パスワードストア」を使用しない1つの方法(それが何であれ)は、ハッシュされたユーザー名とパスワードを格納するためにRAW(16)列をテーブルに追加することです。

    alter table mytable add password raw(16);
    

    次に、ハッシュされたユーザー名とパスワードを次のように保存します。

    insert into mytable (username, password, ...)
    values (:username, dbms_obfuscation_toolkit.md5 
                          (input => utl_i18n.string_to_raw
                                      (upper(:username)||:password))
           );
    

    次に、ユーザーがユーザー名とパスワードを使用してログインしようとすると、次のように確認できます。

    select 'OK'
    from   mytable
    where  username = :username
    and    password = dbms_obfuscation_toolkit.md5 
                          (input => utl_i18n.string_to_raw
                                      (upper(:username)||:password));
    

    このようにして、保存されているパスワードが何であるかを誰も知ることができません(ブルートフォース以外)。



    1. 別のテーブルから選択してMySQLを更新

    2. Postgresデータベースの複数のスキーマにhstoreをインストールする最良の方法は?

    3. 複数の列に対して相関サブクエリを使用する

    4. SQL Server:テーブル値関数とストアドプロシージャ