MySql 用戶安全

    Windows默認安裝好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)

    默認情況下,可以不要任何用戶、口令登陸MySql;來自localhost的root用戶是沒有口令的,一旦有人僞裝成來自buider的root用戶,安全性就會受到挑戰。

    接着需要刪除多餘的用戶:
    mysql> delete from user where user='';
    mysql> delete from user where host='buider';

    默認root用戶的空密碼也是必須修改:
    mysql> update user set password=password('123456') where user='root';
    mysql> flush privileges;

    這樣,MySQL數據庫root用戶的口令被改成123456了。其中最後一句命令flush privileges的意思是強制刷新內存授權表,否則用的還是緩衝中的口令,這時非法用戶還可以用root用戶及空口令登陸,直到重啓MySQL服務器。

    再來看看:
    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用戶登陸是不明智的,因爲它擁有太大的權限,在實際使用時應該會出現安全問題,應該再建立一個用戶,讓他只要select、insert、update、delete這些基本權限即可。
    像這樣建立一個叫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進行基本操作就行了。

    另外注意一下數據庫備份的問題,mysqldump -u root -p mysql>samp.db.txt,在DOS命令臺(不是mysql)下運行之,可以在bin目錄下生成mysql數據庫下所有的表文件(samp.db.txt)。導入最好使用EMS MySql Manager。


(請注意!引用、轉貼本文應註明原作者:Rosen Jiang 以及出處:http://blog.csdn.net/rosen

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