| 導購 | 订阅 | 在线投稿
分享
 
 
 

如何讓新安裝的MySQL數據庫變得更安全

2008-07-11 05:57:41  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
  在你自己安裝了一個新的MySQL服務器後,你需要爲MySQL的root用戶指定一個目錄(缺省無口令),否則如果你忘記這點,你將你的MySQL處于極不安全的狀態(至少在一段時間內)。

  在Unix(Linux)上,在按照手冊的指令安裝好MySQL後,你必須運行mysql_install_db腳本建立包含授權表的mysql數據庫和初始權限。在Windows上,運行分發中的Setup程序初始化數據目錄和mysql數據庫。假定服務器也在運行。

  當你第一次在機器上安裝MySQL時,mysql數據庫中的授權表是這樣初始化的:

  你可以從本地主機(localhost)上以root連接而不指定口令。root用戶擁有所有權限(包括管理權限)並可做任何事情。(順便說明,MySQL超級用戶與Unix超級用戶有相同的名字,他們彼此毫無關系。)

  匿名訪問被授予用戶可從本地連接名爲test和任何名字以test_開始的數據庫。匿名用戶可對數據庫做任何事情,但無管理權限。

  從本地主機多服務器的連接是允許的,不管連接的用戶使用一個localhost主機名或真實主機名。如:

  % mysql -h localhost test

  % mysql -h pit.snake.net test

  你以root連接MySQL甚至不指定口令的事實只是意味著初始安裝不安全,所以作爲管理員的你首先要做的應該是設置root口令,然後根據你設置口令使用的方法,你也可以告訴服務器重載授權表是它知道這個改變。(在服務器啓動時,它重載表到內存中而可能不知道你已經修改了它們。)

  對MySQL 3.22和以上版本,你可以用mysqladmin設置口令:

  % mysqladmin -u root password yourpassword

  對于MySQL的任何版本,你可以用mysql程序並直接修改mysql數據庫中的user授權表:

  % mysql -u root mysql

  mysql>UPDATE user SET password=PASSWORD("yourpassword") WHERE User="root";

  如果你有MySQL的老版本,使用mysql和UPDATE。

  在你設置完口令後,通過運行下列命令檢查你是否需要告訴服務器重載授權表:

  % mysqladmin -u root status

  如果服務器仍然讓你以root而不指定口令而連接服務器,重載授權表:

  % mysqladmin -u root reload

  在你設置了root的口令後(並且如果需要重載了授權表),你將需要在任何時候以root連接服務器時指定口令。
 
在你自己安裝了一個新的MySQL服務器後,你需要爲MySQL的root用戶指定一個目錄(缺省無口令),否則如果你忘記這點,你將你的MySQL處于極不安全的狀態(至少在一段時間內)。 在Unix(Linux)上,在按照手冊的指令安裝好MySQL後,你必須運行mysql_install_db腳本建立包含授權表的mysql數據庫和初始權限。在Windows上,運行分發中的Setup程序初始化數據目錄和mysql數據庫。假定服務器也在運行。 當你第一次在機器上安裝MySQL時,mysql數據庫中的授權表是這樣初始化的: 你可以從本地主機(localhost)上以root連接而不指定口令。root用戶擁有所有權限(包括管理權限)並可做任何事情。(順便說明,MySQL超級用戶與Unix超級用戶有相同的名字,他們彼此毫無關系。) 匿名訪問被授予用戶可從本地連接名爲test和任何名字以test_開始的數據庫。匿名用戶可對數據庫做任何事情,但無管理權限。 從本地主機多服務器的連接是允許的,不管連接的用戶使用一個localhost主機名或真實主機名。如: % mysql -h localhost test % mysql -h pit.snake.net test 你以root連接MySQL甚至不指定口令的事實只是意味著初始安裝不安全,所以作爲管理員的你首先要做的應該是設置root口令,然後根據你設置口令使用的方法,你也可以告訴服務器重載授權表是它知道這個改變。(在服務器啓動時,它重載表到內存中而可能不知道你已經修改了它們。) 對MySQL 3.22和以上版本,你可以用mysqladmin設置口令: % mysqladmin -u root password yourpassword 對于MySQL的任何版本,你可以用mysql程序並直接修改mysql數據庫中的user授權表: % mysql -u root mysql mysql>UPDATE user SET password=PASSWORD("yourpassword") WHERE User="root"; 如果你有MySQL的老版本,使用mysql和UPDATE。 在你設置完口令後,通過運行下列命令檢查你是否需要告訴服務器重載授權表: % mysqladmin -u root status 如果服務器仍然讓你以root而不指定口令而連接服務器,重載授權表: % mysqladmin -u root reload 在你設置了root的口令後(並且如果需要重載了授權表),你將需要在任何時候以root連接服務器時指定口令。
󰈣󰈤
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
  免責聲明:本文僅代表作者個人觀點,與王朝網絡無關。王朝網絡登載此文出於傳遞更多信息之目的,並不意味著贊同其觀點或證實其描述,其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,並請自行核實相關內容。
 
© 2005- 王朝網路 版權所有