Mycat 配置說明(server.xml)


server.xml 幾乎保存了所有mycat需要的系統配置信息,包括 mycat 用戶管理、DML權限管理等,其在代碼內直接的映射類為SystemConfig 類。

user 標簽

該標簽主要用於定義登錄 mycat的用戶和權限。例如,我定義了一個用戶,用戶名為test、密碼也為test,可訪問的schema也只有TESTDB一個,示例代碼如下:

<!-- 用戶名稱 -->

<user name="test">

<!-- 賬戶信息 -->

<!-- 用戶密碼 -->

<property name="password">test</property>

<!-- 邏輯數據庫名稱,存在多個則使用","號分隔 -->

<property name="schemas">TESTDB</property>

<!-- 只讀 -->

<property name="readOnly">true</property>

<!-- 連接服務降級的基准連接數量 -->

<property name="benchmark">11111</property>

<!-- 是否對密碼加密 -->

<property name="usingDecrypt">1</property>

<!-- 精細化DML權限控制 -->

<privileges check="false">

<schema name="TESTDB" dml="0010" showTables="custome/mysql">

<table name="tbl_user" dml="0110"></table>

<table name="tbl_dynamic" dml="1111"></table>

</schema>

</privileges>

</user>

  • 相關屬性
    • Benchmark:mycat 連接服務降級處理,當前端的整體 connection 數達到基准值時,對來自該賬戶的請求開始拒絕連接,0 或不設表示不限制
    • usingDecrypt:是否對密碼加密默認0 否 如需要開啟配置1,同時使用加密程序對密碼加密,加密命令為:

      # java -cp Mycat-server-1.6-RELEASE.jar io.mycat.util.DecryptUtil 0:user:password

      其中 Mycat-server-1.6-RELEASE.jar 位於 mycat/lib 目錄中,0:user:password,其中 0 表示 前端加密標識

privileges 標簽

對用戶的 schema 及 下級的 table 進行精細化的 DML 權限控制,privileges 節點中的 check 屬性是用於標識是否開啟 DML 權限檢查, 默認false 標識不檢查,當然 privileges 節點不配置,等同 check=false, 由於Mycat一個用戶的schemas 屬性可配置多個 schema ,所以 privileges 的下級節點 schema 節點同樣可配置多個,對多庫多表進行細粒度的DML 權限控制,在 schema 及 table 上設置 dml 字符串的規則時按照如下規則設置的,示例如下:

操作

DML權限示例

說明

insert,update,select,delete

0000

禁止增加、更新、查詢和刪除

insert,update,select,delete

0010

禁止增加、更新和刪除,可以查詢

insert,update,select,delete

1110

禁止刪除,可以創建、更新和查詢

如果設置了 schema 的 DML,而沒有設置 table 的 DML,則自動繼承 schema 的 DML 屬性


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM