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

Skift brugeradgangskode via jdbc. Problemer med afleveringer med spørgsmålstegn

For at bruge JDBC til at ændre adgangskoden for en Oracle-bruger skal du gøre to ting:

  • sæt adgangskoden direkte i SQL-strengen (bindingsparametre kan ikke bruges),
  • deaktiver escape-behandling.

Du kan ikke bruge bindevariabler, fordi brugernavnet og adgangskoden ikke sendes til databasen som strenge med enkelt citat.

? i SQL-strengen tages som en bind-variabel pladsholder, og på grund af dette bliver SQL-strengen ødelagt på et tidspunkt af Oracle JDBC. Deaktivering af escape-behandling på erklæringen forhindrer dette i at ske. Prøv:

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

Hvis du indstiller adgangskoden programmatisk, skal din kode også sikre, at den nye og gamle adgangskode ikke indeholder nogen " tegn, for at undgå SQL-injektion.



  1. Find de nærmeste 10 byer med MySQL ved hjælp af bredde- og længdegrad?

  2. MySQL flere kolonner i IN-klausul

  3. MySQL:Sammenlign forskelle mellem to tabeller

  4. MySql scoping problem med korrelerede underforespørgsler