2012-06-26 30 views
4

我在這裏有一個很奇怪的問題。我們使用Pentaho Kettle來管理數據庫的模式(這反過來使用MySQL JDBC mysql-connector-java-5.1.17.jar)。當試圖創建一個視圖,其中包括另一種觀點(在這種情況下接口),我們得到:通過JDBC的View-over-View DDL「任何拒絕用戶的命令」

2012/06/26 11:46:55 - SQL2 - ERROR : Couldn't execute SQL: CREATE OR REPLACE VIEW `test_delete2` as select * from interfaces 
2012/06/26 11:46:55 - SQL2 - ERROR : ANY command denied to user 'ncim'@'xxx.xxx.xxx..xx' for table '/var/mysql/mysql2018/tmp/#sql_4e67_0' 

然而,用同樣的語句和用戶,而是通過mysql命令行客戶端,按預期工作。另外,使用JDBC在普通表上創建視圖也是可行的。

這與服務器端Solaris 10上的MariaDB 5.2.10相同,但我們也遇到與Oracle MySQL相同的問題。

有什麼好主意可能導致這種情況? PS:我知道創建視圖並不是最好的想法,但假設在這種情況下它是不可避免的。

+0

嘗試使用JDBC運行SHOW GRANTS。結果是什麼? – Devart

+0

我不確定是否有什麼好處,這應該顯示別的東西比不使用JDBC(並且那裏用戶明確擁有權限),但誰知道,我會試一試。可能需要幾天的時間,直到我下一次訪問這個環境。 –

+0

將SHOW GRANTS的結果添加到問題中。 –

回答

0

我認爲你的GRANT權限有缺陷。

當使用JDBC遠程訪問數據庫時,您需要爲用戶機器創建授予權限。

您是否擁有GRANT如下?如果不嘗試授予如下內容:

grant all on <database>.* to ‘<username>’@'%' identified by '<passwd>'; 
相關問題