我正在尝试从teradata数据库中进行sqoop。
我使用了以下调用:
sqoop import --connect jdbc:teradata://<<ip>>/database=<<dbname>>,LOGMECH=<<logmech>> --connection-manager "com.cloudera.connector.teradata.TeradataManager" --username <<user>> -P --target-dir <<targetdir>> --query 'SELECT * FROM <<source-db>>.<<source-table>> WHERE $CONDITIONS sample 10' --split-by <<fieldname>> --hive-import --hive-database <<hivedb-target>> --hive-table <<hivetable-target>>
收到以下错误:
16/10/12 22:31:23 ERROR tool.ImportTool: Encountered IOException running import job: com.teradata.connector.common.exception.ConnectorException: com.teradata.jdbc.jdbc_4.util.JDBCException: [Teradata Database] [TeraJDBC 15.00.00.11] [Error 3523] [SQLState 42000] An owner referenced by user does not have SELECT WITH GRANT OPTION access to <<source-db>>.<<source-table>>
任何人都可以帮助解决此错误吗?
似乎sqoop正在尝试委托/分配对表的访问权。
输入数据库产品是Teradata
输入数据库版本为14.10
jdbc驱动程序版本为15.0
运行Sqoop版本:1.4.6
答案 0 :(得分:1)
听起来<<user>>
拥有SELECT
<<sourcedb>>.<<sourcetable>>
的权限,这可能是Teradata中的一个视图。 <<sourcedb>>
需要在SELECT
或包含这些对象的数据库中引用的对象上授予特殊<<sourcetable>>
权限。
GRANT SELECT ON <<ReferencedDB>>.<<ReferencedObject>> TO <<SourceDB>> WITH GRANT OPTION;
OR
GRANT SELECT ON <<ReferencedDB>> to <<SourceDB>> WITH GRANT OPTION;
答案 1 :(得分:0)
您需要在&lt;&gt;。
上为授予选项提供选择权限请点击此链接 http://teradataforum.com/teradata/20040908_102929.htm