MySql數(shù)據(jù)庫是中小型網(wǎng)站后臺(tái)數(shù)據(jù)庫的首選,因?yàn)樗鼘?duì)非商業(yè)應(yīng)用是免費(fèi)的.網(wǎng)站開發(fā)者可以搭建一個(gè)"Linux+Apache+PHP+MySql" 平臺(tái),這是一個(gè)最省錢的高效平臺(tái).在使用MySql進(jìn)行開發(fā)時(shí),MySql自帶的文檔對(duì)于新手來說是份很好的參考資料.本文是我在使用MySql中的小小心得。
當(dāng)前一般用戶的開發(fā)環(huán)境多是Windows或Linux,用戶可以到下載相關(guān)版本進(jìn)行安裝,在 windows中MySql以服務(wù)形式存在,在使用前應(yīng)確保此服務(wù)已經(jīng)啟動(dòng),未啟動(dòng)可用net start mysql命令啟動(dòng)。而Linux中啟動(dòng)時(shí)可用“/etc/rc.d/init.d/mysqld start"命令,注意啟動(dòng)者應(yīng)具有管理員權(quán)限。
剛安裝好的MySql包含一個(gè)含空密碼的root帳戶和一個(gè)匿名帳戶,這是很大的安全隱患,對(duì)于一些重要的應(yīng)用我們應(yīng)將安全性盡可能提高,在這里應(yīng)把匿名帳戶刪除、 root帳戶設(shè)置密碼,可用如下命令進(jìn)行:
use mysql;
delete from User where User="";
update User set Password=PASSWORD('newpassword') where User='root';
如果要對(duì)用戶所用的登錄終端進(jìn)行限制,可以更新User表中相應(yīng)用戶的Host字段,在進(jìn)行了以上更改后應(yīng)重新啟動(dòng)數(shù)據(jù)庫服務(wù),此時(shí)登錄時(shí)可用如下類似命令:
mysql -uroot -p;
mysql -uroot -pnewpassword;
mysql mydb -uroot -p;
mysql mydb -uroot -pnewpassword;
上面命令參數(shù)是常用參數(shù)的一部分,詳細(xì)情況可參考文檔。此處的mydb是要登錄的數(shù)據(jù)庫的名稱。
在進(jìn)行開發(fā)和實(shí)際應(yīng)用中,用戶不應(yīng)該只用root用戶進(jìn)行連接數(shù)據(jù)庫,雖然使用root用戶進(jìn)行測(cè)試時(shí)很方便,但會(huì)給系統(tǒng)帶來重大安全隱患,也不利于管理技術(shù)的提高。我們給一個(gè)應(yīng)用中使用的用戶賦予最恰當(dāng)?shù)臄?shù)據(jù)庫權(quán)限。如一個(gè)只進(jìn)行數(shù)據(jù)插入的用戶不應(yīng)賦予其刪除數(shù)據(jù)的權(quán)限。MySql的用戶管理是通過 User表來實(shí)現(xiàn)的,添加新用戶常用的方法有兩個(gè),一是在User表插入相應(yīng)的數(shù)據(jù)行,同時(shí)設(shè)置相應(yīng)的權(quán)限;二是通過GRANT命令創(chuàng)建具有某種權(quán)限的用戶。其中GRANT的常用用法如下:
grant all on mydb.* to identified by "password" ;
grant usage on *.* to identified by "password";
grant select,insert,update on mydb.* to identified by "password";
grant update,delete on mydb.TestTable to identified by "password";
若要給此用戶賦予他在相應(yīng)對(duì)象上的權(quán)限的管理能力,可在GRANT后面添加WITH GRANT OPTION選項(xiàng)。而對(duì)于用插入U(xiǎn)ser表添加的用戶,Password字段應(yīng)用PASSWORD 函數(shù)進(jìn)行更新加密,以防不軌之人竊看密碼。對(duì)于那些已經(jīng)不用的用戶應(yīng)給予清除,權(quán)限過界的用戶應(yīng)及時(shí)回收權(quán)限,回收權(quán)限可以通過更新User表相應(yīng)字段,也可以使用REVOKE操作。
更多信息請(qǐng)查看IT技術(shù)專欄