Oracle
 sql >> база данни >  >> RDS >> Oracle

Променете потребителската парола чрез jdbc. Проблеми с пропуски, съдържащи въпросителни знаци

За да използвате JDBC за промяна на паролата на потребител на Oracle, трябва да направите две неща:

  • поставете паролата директно в SQL низа (не могат да се използват параметри за свързване),
  • дезактивиране на обработката на escape.

Не можете да използвате променливи за свързване, защото потребителското име и паролата не се изпращат към базата данни като низове в единични кавички.

? в SQL низа се приема като заместител на променлива за свързване и поради това SQL низът се обезобразява в даден момент от Oracle JDBC. Деактивирането на обработката на escape на оператора спира това да се случи. Опитайте:

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

Ако задавате паролата програмно, вашият код трябва също така да гарантира, че новата и старата парола не съдържат " знаци, за да избегнете 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 SQL заявка, която обединява множество редове в един ред?

  2. Режим на престой и прилагане на Hotpatch в adop R12.2

  3. PL/SQL Как да върнете всички атрибути в ROW

  4. Oracle Database TLS1.2 / SSL връзка с помощта на JDBC тънък и JKS

  5. Премахване на ограничение със специален знак в Oracle