Windows默認(rèn)安裝好MySql以后需要做一些安全措施。首先像這樣:
mysql> use mysql;
Database changed
mysql> select Host,User,Password,Select_priv,Grant_priv from user;
+------+------+-----------+-------------+------------+
| Host | User | Password | Select_priv | Grant_priv |
+------+-------+----------+-------------+------------+
| localhost | root | | Y | Y |
| buider | root | | Y | Y |
| localhost | | | Y | Y |
| | | | N | N |
+-------+---+------+------+-------------+------------+
4 rows in set (0.00 sec)
默認(rèn)情況下,可以不要任何用戶、口令登陸MySql;來自localhost的root用戶是沒有口令的,一旦有人偽裝成來自buider的root用戶,安全性就會(huì)受到挑戰(zhàn)。
接著需要?jiǎng)h除多余的用戶:
mysql> delete from user where user='';
mysql> delete from user where host='buider';
默認(rèn)root用戶的空密碼也是必須修改:
mysql> update user set password=password('123456') where user='root';
mysql> flush privileges;
這樣,MySQL數(shù)據(jù)庫root用戶的口令被改成123456了。其中最后一句命令flush privileges的意思是強(qiáng)制刷新內(nèi)存授權(quán)表,否則用的還是緩沖中的口令,這時(shí)非法用戶還可以用root用戶及空口令登陸,直到重啟MySQL服務(wù)器。
再來看看:
mysql> select Host,User,Password,Select_priv,Grant_priv from user;
????+-----------+---------+------------------+-------------+------------+
| Host | User | Password | Select_priv | Grant_priv |
+-----------+---------+------------------+-------------+------------+
| localhost | root | 565491d704013245 | Y | Y |
+-----------+---------+------------------+-------------+------------+
1 rows in set (0.03 sec)
利用root用戶登陸是不明智的,因?yàn)樗鼡碛刑蟮臋?quán)限,在實(shí)際使用時(shí)應(yīng)該會(huì)出現(xiàn)安全問題,應(yīng)該再建立一個(gè)用戶,讓他只要select、insert、update、delete這些基本權(quán)限即可。
像這樣建立一個(gè)叫javapro的用戶密碼為123456,它只能來自localhost并操作process下面所有的表:
mysql> grant select,insert,update,delete on process.* to javapro@localhost identified by "123456";
Query OK, 0 rows affected (0.00 sec)
讓我們再來檢查一下:
mysql> select Host,User,Password,Select_priv,Grant_priv from user;
+-----------+---------+------------------+-------------+------------+
| Host | User | Password | Select_priv | Grant_priv |
+-----------+---------+------------------+-------------+------------+
| localhost | root | 565491d704013245 | Y | Y |
| localhost | javapro | 565491d704013245 | Y | N |
+-----------+---------+------------------+-------------+------------+
2 rows in set (0.00 sec)
好,在程序中,我們只需要用javapro用戶對我們的工作表process進(jìn)行基本操作就行了。
另外注意一下數(shù)據(jù)庫備份的問題,mysqldump -u root -p mysql>samp.db.txt,在DOS命令臺(不是mysql)下運(yùn)行之,可以在bin目錄下生成mysql數(shù)據(jù)庫下所有的表文件(samp.db.txt)。導(dǎo)入最好使用EMS MySql Manager。
請注意!引用、轉(zhuǎn)貼本文應(yīng)注明原作者:Rosen Jiang 以及出處:http://www.tkk7.com/rosen