gpt4 book ai didi

python - Django - 错误 : ORA-01017: invalid username/password; logon denied

转载 作者:行者123 更新时间:2023-12-01 08:19:28 25 4
gpt4 key购买 nike

我在 django 项目中使用 Oracle 数据库后端。我能够使用 CMD 行中的 sqlplus 并使用 Oracle SQL 开发人员连接到远程 Oracle 数据库。每当我尝试使用 python manage.py dbshel​​l 时,它都会返回 oracle 错误。

SP2-0751: Unable to connect to Oracle.  Exiting SQL*Plus
Traceback (most recent call last):
File "manage.py", line 15, in <module>
execute_from_command_line(sys.argv)
File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line
utility.execute()
File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\management\__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\management\base.py", line 316, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\management\base.py", line 353, in execute
output = self.handle(*args, **options)
File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\management\commands\dbshell.py", line 22, in handle
connection.client.runshell()
File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\db\backends\oracle\client.py", line 12, in runshell
subprocess.check_call(args)
File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 341, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['sqlplus', '-L', 'system/\\"password\\"@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=host)(PORT=8080))(CONNECT_DATA=(SID=temp)))']' returned non-zero exit status 1.

设置.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': 'temp',
'USER': 'system',
'PASSWORD': 'password',
'HOST': 'host',
'PORT': '8080',
}
}

出于安全目的,我修改了数据库信息,但 settings.py 信息应该与堆栈跟踪错误匹配。

关于我应该尝试什么或者我忘记设置什么有什么建议吗?

最佳答案

我不确定如何在 Django 中修复它,但问题似乎是密码转义的方式。您可以直接根据失败的子进程输出使用 sqlplus 命令对此进行测试。

这失败了:

# From error: [sqlplus', '-L', 'user/\\"password\\"@some_dsn
sqlplus -L user/\\"password\\"@some_dsn

这有效:

sqlplus -L user/password@some_dsn

可能会探索在 Django 中提交 oracle/sqlplus 的补丁,但我认为这不会很快起作用。您可以摆动所有 Django 旋钮,我认为这是一个低级问题,您无法通过调整设置来解决。

关于python - Django - 错误 : ORA-01017: invalid username/password; logon denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54755006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com