首页 > 解决方案 > 从 Python 连接到 Oracle 时出现“ORA-28000:帐户已锁定”

问题描述

我在本地系统中安装了 Python (3.8.3) 和 Oracle DB (11g Release 2 服务器)。这两个软件都可以单独运行。我可以在 python 中运行程序,也可以使用 Oracle DB 中的数据创建表,我可以通过 Oracle SQL Developer 和 SQL Plus 访问这些表。但是,当我尝试从 python 连接 Oracle DB 时,由于帐户被锁定而出现错误。我已经成功安装并执行了 import cx_Oracle。但是当我尝试执行以下代码时出现错误。

1.本地初始化方法 ——connection = cx_Oracle.connect("oe/oracle@localhost:1522/orcl11g2")

2.通过TNSNAMES.ORA 连接——connection = cx_Oracle.connect("oe", "oracle", "orcl11g2")

错误 -

Traceback(最近一次调用最后一次):文件“”,第 1 行,在 cx_Oracle.DatabaseError: ORA-28000: 帐户被锁定

我的 TNS 详细信息 -

文件位置 - D:\app\Admin\product\11.2.0\dbhome_2\NETWORK\ADMIN

ORCL11G2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL11G2) )

请帮我。如果您需要了解更多信息来指导我,请告诉我。

标签: cx-oraclepython-3.8oracle11gr2tnsnames

解决方案


SQL Developer或 SQL*Plus 中,以特权用户(例如 SYSTEM 或 SYS)的身份连接到数据库,例如:

sqlplus system/yourpassword@localhost:1522/orcl11g2

然后运行 ​​SQL 语句:

alter user oe account unlock;

推荐阅读