Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Ubah kata sandi pengguna melalui jdbc. Masalah dengan pass yang mengandung tanda tanya

Untuk menggunakan JDBC untuk mengubah kata sandi pengguna Oracle, Anda perlu melakukan dua hal:

  • masukkan kata sandi langsung ke string SQL (parameter bind tidak dapat digunakan),
  • nonaktifkan pemrosesan pelarian.

Anda tidak dapat menggunakan variabel bind karena nama pengguna dan sandi tidak dikirim ke database sebagai string bertanda kutip tunggal.

? dalam string SQL diambil sebagai tempat penampung variabel pengikat, dan karena itu string SQL menjadi rusak di beberapa titik oleh Oracle JDBC. Menonaktifkan pemrosesan pelarian pada pernyataan menghentikan hal ini terjadi. Coba:

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

Jika Anda menyetel sandi secara terprogram, kode Anda juga harus memastikan bahwa sandi baru dan lama tidak mengandung " karakter, untuk menghindari injeksi SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle 10g - optimalkan DI MANA BUKAN NULL

  2. Cara menggunakan pass array dalam fungsi PL/SQL

  3. Cara Membuat Paket PL/SQL Di Database Oracle

  4. ORACLE SQL:Buat baris baru berdasarkan rentang tanggal

  5. Apa perbedaan antara || operator dan fungsi concat di Oracle?