Metabase 社群版沒有限制使用者可視資料的功能(付費版才有),也就是說,當系統管理員建立了一個資料庫連線,則所有 Metabase 的一般使用者都能看到該連線的所有 table。
不過我們有變通做法 -- 從資料庫分別設定幾個限制權限的帳號,本筆記以 MySQL8 做範例,例如建立帳號 user1(代表業務部),只授予 user1 能查詢檢視 table1,建立帳號 user2(代表行銷部),只能查詢檢視 table2。
以 root 帳號登入 phpMyAdmin 或 登入 Linux 開一個命令列視窗然後建立一個 MySQL 連線,本例示範在 phpMyAdmin 操作
-- 建立使用者 CREATE USER 'user1'@'localhost' IDENTIFIED BY '密碼'; -- 授予 USER1 查詢資料庫 db1 的 table1 的權限 GRANT SELECT ON db1.table1 TO 'user1'@'localhost'; -- 刷新權限(選擇性命令, 通常會自動生效) FLUSH PRIVILEGES;
驗證:登出 phpMyAdmin,以 user1 登入,就能看到 user1 只能看到 db1 的 table1 的資料。
以管理員帳號登入 Metabase → 設定 → 管理員設定
輸入在前面為行銷建立的帳號 user1,並在【顯示名稱】輸入 sales(Linuxmint22.2 的 MySQL8 設定安裝可參考相關筆記),重複步驟建立 user2,【顯示名稱】輸入 marketing。
到【權限管理】→【所有使用者群組】,這個群組預設是可查詢所有資料庫的,而且會高過其他群組的設定,所以要把 marketing、sales 的【建立提問】取消
設定業務部只能查詢 sales 資料庫
而行銷部只能查詢 marketing 資料庫
相關筆記 ----







沒有留言:
張貼留言