Db2
DB2:如何通過 ADMIN_CMD 導出數據文件並由 db2inst1 擁有
有一些要求我需要通過 JDBC 在 Java 中執行導出命令。因此下面是我執行的命令
CALL SYSPROC.ADMIN_CMD('EXPORT TO /tmp/header.csv OF DEL SELECT * FROM MYTABLE');
但是,當我通過 db2inst1 ssh 登錄到數據庫伺服器時,我檢查了 /tmp/header.csv 是由 db2fenc1 使用者擁有的,它不允許我刪除但只讀訪問權限,如下所示:
[db2inst1@26ea60b7e4a1 /]$ ls -lrt /tmp/header.csv -rw-r--r-- 1 db2fenc1 db2fadm1 24335 Nov 12 12:25 /tmp/header.csv
我可以知道如何將 ADMIN_CMD 作為 db2inst1 執行嗎?或任何其他解決方法?
這是設計使然;
ADMIN_CMD
和其他受保護的常式使用受保護的使用者權限執行,以保護(“保護”)實例免受錯誤或惡意程式碼的侵害。有些人在實例創建過程中將受保護的使用者設置為實例所有者 ID,這將導致受保護的常式以實例所有者權限執行。但是,這會造成嚴重的安全漏洞。
最好讓您的系統管理員允許實例所有者受限
sudo
或runuser
權限來執行必要的命令,如db2fenc1
.