为什么sqoop尝试使用SELECT WITH GRANT?

时间:2016-10-12 11:46:32

标签: hadoop hive teradata

我正在尝试从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

2 个答案:

答案 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