5、Mycat安全

1.權限配置

[1].user標籤

  目前 Mycat 對於中間件的連接控制並沒有做太複雜的控制,目前只做了中間件邏輯庫級別的讀寫權限控制。是通過 server.xml 的 user 標籤進行配置。

#server.xml配置文件user部分

[root@host79 ~]# vim /usr/local/mycat/conf/server.xml

 

<user name="mycat">

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

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

</user>

<user name="user">

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

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

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

</user>

 

(1).配置說明

標籤屬性

說明

name

應用連接中間件邏輯庫的用戶名

password

該用戶對應的密碼

TESTDB

應用當前連接的邏輯庫中所對應的邏輯表。schemas 中可以配置一個或多個

readOnly

應用連接中間件邏輯庫所具有的權限。true 爲只讀,false 爲讀寫都有,默認爲 false

(2).測試案例

#測試案例一

# 使用user用戶,權限爲只讀(readOnlytrue

# 驗證是否可以查詢出數據,驗證是否可以寫入數據

#1、用user用戶登錄,運行命令如下:

mysql -uuser -puser -h 192.168.188.188 -P8066

#2、切換到TESTDB數據庫,查詢orders表數據,如下:

use TESTDB

select * from orders;

#3、可以查詢到數據,如下圖

#4、執行插入數據sql

insert into orders(id,order_type,customer_id,amount) values(7,101,101,10000);

#5、可看到運行結果,插入失敗,只有只讀權限,如下圖:

  

#測試案例二

# 使用mycat用戶,權限爲可讀寫(readOnlyfalse

# 驗證是否可以查詢出數據,驗證是否可以寫入數據

#1、用mycat用戶登錄,運行命令如下:

mysql -umycat -p123456 -h 192.168.188.188 -P8066

#2、切換到TESTDB數據庫,查詢orders表數據,如下:

use TESTDB

select * from orders;

#3、可以查詢到數據,如下圖

#4、執行插入數據sql

insert into orders(id,order_type,customer_id,amount) values(7,101,101,10000);

#5、可看到運行結果,插入成功,如下圖:

 

[2].privileges 標籤

  持保留,因爲privileges 打開後啓動出現

 

錯誤.mycat的版本信息Mycat-server-1.6-RELEASE-20161028204710-linux.tar

2.SQL攔截

  firewall 標籤用來定義防火牆;firewall 下 whitehost 標籤用來定義 IP 白名單 ,blacklist 用來定義SQL 黑名單。

[1].白名單

  可以通過設置白名單,實現某主機某用戶可以訪問 Mycat,而其他主機用戶禁止訪問

#設置白名單

#server.xml配置文件firewall標籤

#配置只有192.168.140.128主機可以通過mycat用戶訪問

<firewall>

 <whitehost>

 <host host="192.168.140.128" user="mycat"/>

 </whitehost>

</firewall>

 

 

#重啓Mycat後,192.168.140.128主機使用mycat用戶訪問

mysql -umycat -p123456 -h 192.168.140.128 -P 8066

#可以正常訪問,如下圖

##192.168.188.189主機用mycat用戶訪問,禁止訪問

  

#在此主機換user用戶訪問,禁止訪問

 

[2].黑名單

  可以通過設置黑名單,實現 Mycat 對具體 SQL 操作的攔截,如增刪改查等操作的攔截.

#設置白名單

#server.xml配置文件firewall標籤

#配置禁止mycat用戶進行刪除操作

<blacklist check="true">

  <property name="deleteAllow">false</property>

</blacklist>

#重啓Mycat後,192.168.140.128主機使用mycat用戶訪問

mysql -umycat -p123456 -h 192.168.188.188 -P 8066

#可以正常訪問,如下圖

 

 

#切換TESTDB數據庫後,執行刪除數據語句

delete from orders where id=400200;

#運行後發現已禁止刪除數據,如下圖

 

  可以設置的黑名單 SQL 攔截功能列表

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章