cx-oracle - 从 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) )
请帮我。如果您需要了解更多信息来指导我,请告诉我。
解决方案
在SQL Developer或 SQL*Plus 中,以特权用户(例如 SYSTEM 或 SYS)的身份连接到数据库,例如:
sqlplus system/yourpassword@localhost:1522/orcl11g2
然后运行 SQL 语句:
alter user oe account unlock;
推荐阅读
- here-api - 在 Here Map 的中心叠加图像(如警告图像)?
- google-apps-script - 无法保存文档 - 文档太大。但它不是
- c++ - 通过模板和 SFINAE 支持多个类接口
- string - golang 将 os.ModePerm 转换为字符串
- scala - 有没有更惯用的方法来简化 leftJoin 的结果?
- sql - 这个postgres分页sql的性能可以提高吗?
- vue.js - 如何运行动态传递的函数?
- c# - 绘制事件处理程序
- algorithm - 如何获取所有可能的组合以使用字典创建字符串
- bash - Azure DevOps bash 脚本在 PATH 上看不到二进制文件