十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
本文由ilanniweb提供友情贊助,首發(fā)于爛泥行天下
三門ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
想要獲得更多的文章,可以關(guān)注我的微信ilanniweb
其實(shí)這篇文章很早就想寫了,但是一直沒有時(shí)間。剛好今天下午稍微空了點(diǎn),就把這篇文章整理出來。
有關(guān)phpmyadmin的文章,在百度一搜,能搜出來很多。這篇文章我就介紹下,如何通過phpmyadmin控制開發(fā)人員對(duì)數(shù)據(jù)庫的操作。
當(dāng)然有關(guān)數(shù)據(jù)庫的安全,我們可以從三個(gè)方面進(jìn)行考慮:
1)、MySQL數(shù)據(jù)庫服務(wù)器,包括服務(wù)器本身的安全等。
2)、mysql訪問權(quán)限,包括數(shù)據(jù)庫用戶權(quán)限,以及訪問數(shù)據(jù)庫方法等。
3)、mysql數(shù)據(jù)庫訪問后的安全,包括是否允許導(dǎo)出數(shù)據(jù)等。
今天我們通過phpmyadmin來控制開發(fā)人員對(duì)數(shù)據(jù)庫的操作,其實(shí)就是結(jié)合第二點(diǎn)和第三點(diǎn)來禁止用戶訪問數(shù)據(jù)庫后導(dǎo)出數(shù)據(jù)。
首先我們來先安裝phpmyadmin,在此我們使用的是源碼方式進(jìn)行安裝,而且安裝的是最新版4.6.4,如下:
wgethttps://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環(huán)境,所以在運(yùn)行phpmyadmin之前,需要把相關(guān)的基礎(chǔ)的環(huán)境安裝好。
phpmyadmin解壓安裝完畢后,我們再來配置下nginx,如下:
在此我開啟了nginx的目錄索引功能,主要是考慮到了如果有多個(gè)數(shù)據(jù)庫的話,我們可以通過目錄名稱的方式進(jìn)行區(qū)分。
比如,我們線上的數(shù)據(jù)庫如下:
現(xiàn)在訪問一下,如下:
通過上圖,我們可以很明顯的看出,目前已經(jīng)可以正常訪問phpmyadmin了,但是需要我們輸入相關(guān)的用戶名和密碼。
第一章節(jié)中,我們已經(jīng)安裝好了phpmyadmin,這一章節(jié)我們來配置下phpmyadmin,免密碼登陸訪問。
在此我們以app_db這個(gè)數(shù)據(jù)庫為例。要實(shí)現(xiàn)免密碼登陸訪問之前,我們還需要先在mysql數(shù)據(jù)庫中創(chuàng)建一個(gè)針對(duì)app_db數(shù)據(jù)庫的只讀用戶ilanniread。
創(chuàng)建sql語句如下:
mysql -hrm-bp183j9f186nd4933.mysql.rds.aliyuncs.com -uroot -p'ilanni' -e "grant select on app_db.* to 'ilanniread'@'%' identified by 'readonlyQWE';
ilanniread創(chuàng)建完畢后,我們現(xiàn)在來修改phpmyadmin的配置文件config.default.php。
對(duì)于config.default.php文件,我們只需要修改106、252、259行,其中第106行是數(shù)據(jù)庫的連接地址,而第252行和259行分別是數(shù)據(jù)庫的用戶名和密碼。如下:
修改完畢后,我們再來訪問下,看看實(shí)際的效果,如下:
通過上圖,我們可以很明顯的看到,目前訪問phpmyadmin是不需要輸入數(shù)據(jù)庫的用戶名和密碼了。
而且通過這樣做以后,我們也可以讓開發(fā)人員不需要知道數(shù)據(jù)庫實(shí)際的地址以及數(shù)據(jù)庫的用戶名和密碼,相對(duì)來說安全性還是提高了不少。
第二章節(jié),我們配置了phpmyadmin的免密碼訪問,現(xiàn)在再來配置如何禁止通過phpmyadmin導(dǎo)出查詢出來的數(shù)據(jù)。
默認(rèn)情況下,phpmyadmin是可以導(dǎo)出整個(gè)數(shù)據(jù)庫的,如下:
為了防止開發(fā)人員私自導(dǎo)出查詢出來的結(jié)果,我們可以這樣處理,把phpmyadmin根目錄下的tbl_export.php或者export.php文件進(jìn)行重命名即可,如下:
mv export.php export.php.bak
修改完畢后,我們再來導(dǎo)出數(shù)據(jù)看看,如下:
通過上圖,我們可以很容易的看出目前無法把數(shù)據(jù)導(dǎo)出,這樣就達(dá)到了我們禁止phpmyadmin導(dǎo)出數(shù)據(jù)的目的。
注意:export.php文件是針對(duì)整個(gè)數(shù)據(jù)庫的導(dǎo)出的,如果要禁止查詢后的導(dǎo)出,那么需要我們重命名tbl_export.php文件即可。
PS:安全是相對(duì)的,沒有絕對(duì)的安全,我們只能做到防君子不防小人。