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

jdbcを介してユーザーパスワードを変更します。疑問符を含むパスの問題

    JDBCを使用してOracleユーザーのパスワードを変更するには、次の2つのことを行う必要があります。

    • パスワードをSQL文字列に直接入力します(バインドパラメータは使用できません)。
    • エスケープ処理を無効にします。

    ユーザー名とパスワードは一重引用符で囲まれた文字列としてデータベースに送信されないため、バインド変数を使用することはできません。

    SQL文字列のはバインド変数プレースホルダーとして使用されているため、SQL文字列はある時点でOracleJDBCによってマングルされています。ステートメントでエスケープ処理を無効にすると、これが発生しなくなります。試してみてください:

    Statement s = conn.createStatement();
    s.setEscapeProcessing(false);
    s.executeUpdate("ALTER user Stephen identified by \"newPassword?\" replace \"oldPassword\"");
    

    プログラムでパスワードを設定する場合は、コードで新旧のパスワードに"が含まれていないことも確認する必要があります。 SQLインジェクションを回避するための文字。



    1. SQL Server Management Studio - テーブルを削除せずにフィールド タイプを変更する方法

    2. SQL Serverで、年、特殊文字、および順次シリーズ番号で構成される自動インクリメントの主キーIDを生成するにはどうすればよいですか?

    3. MySQL-オンザフライでフィールドを計算するか、計算されたデータを保存するか

    4. ユーザー定義の集計(clr)をウィンドウ関数(以上)で使用することは可能ですか?