#30307: dbshell doesn't pass password properly on Oracle 18c.
-------------------------------------+-------------------------------------
     Reporter:  Mark Gordon          |                    Owner:  msg555@…
         Type:  Bug                  |                   Status:  assigned
    Component:  Database layer       |                  Version:  2.2
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:
     Keywords:  oracle dbshell       |             Triage Stage:  Accepted
  runshell                           |
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by Mark Gordon):

 Are you finding documentation about this anywhere?

 Apologies if you were just being brief, but let's make sure we're talking
 about the same thing. If

 sqlplus -L username/\"p@ssword\"@localhost:1521/some_database

 is what you entered on the command line then yes it will work because the
 normal shell escaping mechanisms will convert the \" sequence to just a
 double quote when passed to the underlying sqlplus command. However, there
 is no such unescaping shell layer when you use the array form of
 subprocess.run, the arguments are passed literally meaning that there's
 going to be random backslashes in the password portion of the connect
 string.

 e.g. if you ran


 sqlplus -L 'username/\"p@ssword\"@localhost:1521/some_database'

 which is the equivalant of what dbshell is doing then it should fail.

 Additionally, there are no tests of this function in the codebase as far
 as I can tell. The PR that introduced this change did not add tests for
 the dbshell related functionality.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/30307#comment:2>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.abc10d7387ccd6946f16f5c144a228ed%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to