本文由ilanniweb提供友情贊助,首發於爛泥行天下php
想要得到更多的文章,能夠關注個人微信ilanniwebmysql
其實這篇文章很早就想寫了,可是一直沒有時間。恰好今天下午稍微空了點,就把這篇文章整理出來。nginx
有關phpmyadmin的文章,在百度一搜,能搜出來不少。這篇文章我就介紹下,如何經過phpmyadmin控制開發人員對數據庫的操做。web
固然有關數據庫的安全,咱們能夠從三個方面進行考慮:sql
1)、mysql數據庫服務器,包括服務器自己的安全等。數據庫
2)、mysql訪問權限,包括數據庫用戶權限,以及訪問數據庫方法等。安全
3)、mysql數據庫訪問後的安全,包括是否容許導出數據等。服務器
今天咱們經過phpmyadmin來控制開發人員對數據庫的操做,其實就是結合第二點和第三點來禁止用戶訪問數據庫後導出數據。微信
首先咱們來先安裝phpmyadmin,在此咱們使用的是源碼方式進行安裝,並且安裝的是最新版4.6.4,以下:app
wget https://files.phpmyadmin.net/phpMyAdmin/4.6.4/phpMyAdmin-4.6.4-all-languages.zip
unzip phpMyAdmin-4.6.4-all-languages.zip -d /data/dg/
mv /data/dg/phpMyAdmin-4.6.4-all-languages/ /data/dg/app_db/
chmod 755 -R /data/dg/app_db/
注意:phpmyadmin須要lnmp環境,因此在運行phpmyadmin以前,須要把相關的基礎的環境安裝好。
phpmyadmin解壓安裝完畢後,咱們再來配置下nginx,以下:
在此我開啓了nginx的目錄索引功能,主要是考慮到了若是有多個數據庫的話,咱們能夠經過目錄名稱的方式進行區分。
好比,咱們線上的數據庫以下:
如今訪問一下,以下:
經過上圖,咱們能夠很明顯的看出,目前已經能夠正常訪問phpmyadmin了,可是須要咱們輸入相關的用戶名和密碼。
第一章節中,咱們已經安裝好了phpmyadmin,這一章節咱們來配置下phpmyadmin,免密碼登錄訪問。
在此咱們以app_db這個數據庫爲例。要實現免密碼登錄訪問以前,咱們還須要先在mysql數據庫中建立一個針對app_db數據庫的只讀用戶ilanniread。
建立sql語句以下:
mysql -hrm-bp183j9f186nd4933.mysql.rds.aliyuncs.com -uroot -p'ilanni' -e "grant select on app_db.* to 'ilanniread'@'%' identified by 'readonlyQWE';
ilanniread建立完畢後,咱們如今來修改phpmyadmin的配置文件config.default.php。
對於config.default.php文件,咱們只須要修改10六、25二、259行,其中第106行是數據庫的鏈接地址,而第252行和259行分別是數據庫的用戶名和密碼。以下:
修改完畢後,咱們再來訪問下,看看實際的效果,以下:
經過上圖,咱們能夠很明顯的看到,目前訪問phpmyadmin是不須要輸入數據庫的用戶名和密碼了。
並且經過這樣作之後,咱們也可讓開發人員不須要知道數據庫實際的地址以及數據庫的用戶名和密碼,相對來講安全性仍是提升了很多。
第二章節,咱們配置了phpmyadmin的免密碼訪問,如今再來配置如何禁止經過phpmyadmin導出查詢出來的數據。
默認狀況下,phpmyadmin是能夠導出整個數據庫的,以下:
爲了防止開發人員私自導出查詢出來的結果,咱們能夠這樣處理,把phpmyadmin根目錄下的tbl_export.php或者export.php文件進行重命名便可,以下:
mv export.php export.php.bak
修改完畢後,咱們再來導出數據看看,以下:
經過上圖,咱們能夠很容易的看出目前沒法把數據導出,這樣就達到了咱們禁止phpmyadmin導出數據的目的。
注意:export.php文件是針對整個數據庫的導出的,若是要禁止查詢後的導出,那麼須要咱們重命名tbl_export.php文件便可。
PS:安全是相對的,沒有絕對的安全,咱們只能作到防君子不防小人。