SQLCODE = -30081无法使用python

时间:2019-03-25 15:42:23

标签: python db2 database-connection

我能够使用TOAD应用程序很好地连接到DB2,但是我需要能够在python中进行连接,以构建一些自动报告。

我已经安装了ibm_db库,并且我尝试按照说明进行操作,但是仍然出现错误SQLCODE=-30081

import ibm_db

conn_str = 'database=XXXX;hostname=XXXX.host.com;port=11111;protocol=tcpip;uid=user;pwd=password'
conn = ibm_db_conn = ibm_db.connect(conn_str,'','')

跟踪:

Traceback (most recent call last):
  File "C:/Users/username/PycharmProjects/Report/MAIN/MAIN.py", line 4, in <module>
    conn = ibm_db_conn = ibm_db.connect(conn_str,'','')
 SQLCODE=-30081

查找-30081并不是很有帮助,因为它可能是由一系列事情引起的。

我确实读过某个地方,也许ibm_db仅在Python 3.4上受支持,并且我正在使用Python 3.6,但是由于管理员锁定,我现在无法在其工作PC上安装Python 3.4。

更新:

使用命令行测试了连接,并为ibm_db提供了2个不同的连接选项。

两种连接类型:

import ibm_db


conn_str = 'database=XXXX;hostname=111.111.111.111;port=11111;protocol=tcpip;uid=username;pwd=password'

try:
    conn = ibm_db.connect(conn_str, '', '')
except:
    print("no connection:", ibm_db.conn_errormsg())
else:
    print("The 1st connection was successful")

try:
    conn = ibm_db.connect('XXXX', 'username', 'password')
except:
    print("no connection:", ibm_db.conn_errormsg())
else:
    print("The 2nd connection was successful")

错误:

C:\Users\username\Desktop\Python 3.6.2>python test.py
no connection: [IBM][CLI Driver] SQL30081N  A communication error has been detected. Communication protocol being used: "TCP/IP".  Communication API being used: "SOCKETS".  Location where the error was detected: "111.111.111.111".  Communica SQLCODE=-30081etecting the error: "recv".  Protocol specific error code(s): "10054", "*", "0".  SQLSTATE=08001
no connection: [IBM][CLI Driver] SQL30082N  Security processing failed with reason "19" ("USERID DISABLED or RESTRICTED" SQLCODE=-30082001

任何指导将不胜感激。

1 个答案:

答案 0 :(得分:1)

您的错误消息是:


SQL30082N安全处理失败,原因为“ 19”(“ USERID已禁用或受限制” SQLCODE = -30082001


以下是此消息的不错的文章之一:

错误SQL30082N原因码19或24
https://www.ibm.com/support/pages/error-sql30082n-reason-code-19-or-24

此处已被删除,我们可能需要在Windows上进行以下操作:

  

4。)如果您使用的是Windows,请确保将用户所在的组添加到:“从网络访问此计算机”。去检查   请执行以下操作:

     

从Windows开始菜单中单击开始->运行   键入“ secpol.msc”   转到本地策略->用户权限分配。   双击“从网络访问此计算机”

有关此主题的更多信息,请参见“相关URL”以获取更多信息

希望这会有所帮助。