Python通过TeradaSQL模块| |连接到Teradata时出错(未能遵循所需的安全策略)

2024-06-16 08:52:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用TeradasQL模块通过python连接到Teradata DB。下面是我的代码,很简单


    import teradatasql
    import pandas as pd
    
    query="select * from DBC.tablesv sample 10"
    
    with teradatasql.connect(host='<host ip>', user='<username>', password='<password for user>') as connect:
        df = pd.read_sql(query, connect)
    
    print(df.head())

但我在执行时收到错误消息,如下所示。我是数据库编程的初学者。我们将非常感谢专家们的任何帮助

----------------------------------------------------------------

    Traceback (most recent call last):
      File "/data/home/uk393e/anaconda3-5.2.0/lib/python3.6/site-packages/pandas/io/sql.py", line 1400, in execute
        cur.execute(*args)
      File "/data/home/uk393e/anaconda3-5.2.0/lib/python3.6/site-packages/teradatasql/__init__.py", line 649, in execute
        self.executemany (sOperation, None, ignoreErrors)
      File "/data/home/uk393e/anaconda3-5.2.0/lib/python3.6/site-packages/teradatasql/__init__.py", line 896, in executemany
        raise OperationalError (sErr)
    teradatasql.OperationalError: [Version 17.0.0.2] [Session 91835188] [Teradata Database] [Error 8056] A message was received that failed to follow the required security policy
     at gosqldriver/teradatasql.(*teradataConnection).formatDatabaseError TeradataConnection.go:1138
     at gosqldriver/teradatasql.(*teradataConnection).makeChainedDatabaseError TeradataConnection.go:1154
     at gosqldriver/teradatasql.(*teradataConnection).processErrorParcel TeradataConnection.go:1217
     at gosqldriver/teradatasql.(*TeradataRows).processResponseBundle TeradataRows.go:1716
     at gosqldriver/teradatasql.(*TeradataRows).executeSQLRequest TeradataRows.go:552
     at gosqldriver/teradatasql.newTeradataRows TeradataRows.go:418
     at gosqldriver/teradatasql.(*teradataStatement).QueryContext TeradataStatement.go:122
     at gosqldriver/teradatasql.(*teradataConnection).QueryContext TeradataConnection.go:2083
     at database/sql.ctxDriverQuery ctxutil.go:48

|
|
|
  File "/data/home/uk393e/anaconda3-5.2.0/lib/python3.6/site-packages/teradatasql/__init__.py", line 896, in executemany
    raise OperationalError (sErr)
pandas.io.sql.DatabaseError: Execution failed on sql: select * from DBC.tablesv
[Version 17.0.0.2] [Session 91835188] [Teradata Database] [Error 8056] A message was received that failed to follow the required security policy
 at gosqldriver/teradatasql.(*teradataConnection).formatDatabaseError TeradataConnection.go:1138
 at gosqldriver/teradatasql.(*teradataConnection).makeChainedDatabaseError TeradataConnection.go:1154
 at gosqldriver/teradatasql.(*teradataConnection).processErrorParcel TeradataConnection.go:1217
 at gosqldriver/teradatasql.(*TeradataRows).processResponseBundle TeradataRows.go:1716
 at gosqldriver/teradatasql.(*TeradataRows).executeSQLRequest TeradataRows.go:552
 at gosqldriver/teradatasql.newTeradataRows TeradataRows.go:418
 at gosqldriver/teradatasql.(*teradataStatement).QueryContext TeradataStatement.go:122
 at gosqldriver/teradatasql.(*teradataConnection).QueryContext TeradataConnection.go:2083
 at database/sql.ctxDriverQuery ctxutil.go:48
 at database/sql.(*DB).queryDC.func1 sql.go:1464
 at database/sql.withLock sql.go:3032
 at database/sql.(*DB).queryDC sql.go:1459
 at database/sql.(*Conn).QueryContext sql.go:1701
 at main.goCreateRows goside.go:652
 at main._cgoexpwrap_212fad278f55_goCreateRows _cgo_gotypes.go:357
 at runtime.call64 asm_amd64.s:574
 at runtime.cgocallbackg1 cgocall.go:316
 at runtime.cgocallbackg cgocall.go:194
 at runtime.cgocallback_gofunc asm_amd64.s:826
 at runtime.goexit asm_amd64.s:2361
unable to rollback
------------------------------------------------------------

Tags: gohomesqldatadatabaseatfileruntime