新安裝的MySQL數(shù)據(jù)庫需要注意的安全知識
更新時間:2008年07月30日 08:58:54 作者:
在你自己安裝了一個新的MySQL服務(wù)器后,你需要為MySQL的root用戶指定一個目錄(缺省無口令),否則如果你忘記這點(diǎn),你將你的MySQL處于極不安全的狀態(tài)(至少在一段時間內(nèi))。
在Unix(Linux)上,在按照手冊的指令安裝好MySQL后,你必須運(yùn)行mysql_install_db腳本建立包含授權(quán)
表的mysql數(shù)據(jù)庫和初始權(quán)限。在Windows上,運(yùn)行分發(fā)中的Setup程序初始化數(shù)據(jù)目錄和mysql數(shù)據(jù)庫。假
定服務(wù)器也在運(yùn)行。
當(dāng)你第一次在機(jī)器上安裝MySQL時,mysql數(shù)據(jù)庫中的授權(quán)表是這樣初始化的:
你可以從本地主機(jī)(localhost)上以root連接而不指定口令。root用戶擁有所有權(quán)限(包括管理權(quán)限)
并可做任何事情。(順便說明,MySQL超級用戶與Unix超級用戶有相同的名字,他們彼此毫無關(guān)系。)
匿名訪問被授予用戶可從本地連接名為test和任何名字以test_開始的數(shù)據(jù)庫。匿名用戶可對數(shù)據(jù)庫做任
何事情,但無管理權(quán)限。
從本地主機(jī)多服務(wù)器的連接是允許的,不管連接的用戶使用一個localhost主機(jī)名或真實(shí)主機(jī)名。如:
% mysql -h localhost test
% mysql -h pit.snake.net test
你以root連接MySQL甚至不指定口令的事實(shí)只是意味著初始安裝不安全,所以作為管理員的你首先要做的
應(yīng)該是設(shè)置root口令,然后根據(jù)你設(shè)置口令使用的方法,你也可以告訴服務(wù)器重載授權(quán)表是它知道這個改
變。(在服務(wù)器啟動時,它重載表到內(nèi)存中而可能不知道你已經(jīng)修改了它們。)
對MySQL 3.22和以上版本,你可以用mysqladmin設(shè)置口令:
% mysqladmin -u root password yourpassword
對于MySQL的任何版本,你可以用mysql程序并直接修改mysql數(shù)據(jù)庫中的user授權(quán)表:
% mysql -u root mysql
mysql>UPDATE user SET password=PASSWORD("yourpassword") WHERE User="root";
如果你有MySQL的老版本,使用mysql和UPDATE。
在你設(shè)置完口令后,通過運(yùn)行下列命令檢查你是否需要告訴服務(wù)器重載授權(quán)表:
% mysqladmin -u root status
如果服務(wù)器仍然讓你以root而不指定口令而連接服務(wù)器,重載授權(quán)表:
% mysqladmin -u root reload
在你設(shè)置了root的口令后(并且如果需要重載了授權(quán)表),你將需要在任何時候以root連接服務(wù)器時指定
口令
表的mysql數(shù)據(jù)庫和初始權(quán)限。在Windows上,運(yùn)行分發(fā)中的Setup程序初始化數(shù)據(jù)目錄和mysql數(shù)據(jù)庫。假
定服務(wù)器也在運(yùn)行。
當(dāng)你第一次在機(jī)器上安裝MySQL時,mysql數(shù)據(jù)庫中的授權(quán)表是這樣初始化的:
你可以從本地主機(jī)(localhost)上以root連接而不指定口令。root用戶擁有所有權(quán)限(包括管理權(quán)限)
并可做任何事情。(順便說明,MySQL超級用戶與Unix超級用戶有相同的名字,他們彼此毫無關(guān)系。)
匿名訪問被授予用戶可從本地連接名為test和任何名字以test_開始的數(shù)據(jù)庫。匿名用戶可對數(shù)據(jù)庫做任
何事情,但無管理權(quán)限。
從本地主機(jī)多服務(wù)器的連接是允許的,不管連接的用戶使用一個localhost主機(jī)名或真實(shí)主機(jī)名。如:
% mysql -h localhost test
% mysql -h pit.snake.net test
你以root連接MySQL甚至不指定口令的事實(shí)只是意味著初始安裝不安全,所以作為管理員的你首先要做的
應(yīng)該是設(shè)置root口令,然后根據(jù)你設(shè)置口令使用的方法,你也可以告訴服務(wù)器重載授權(quán)表是它知道這個改
變。(在服務(wù)器啟動時,它重載表到內(nèi)存中而可能不知道你已經(jīng)修改了它們。)
對MySQL 3.22和以上版本,你可以用mysqladmin設(shè)置口令:
% mysqladmin -u root password yourpassword
對于MySQL的任何版本,你可以用mysql程序并直接修改mysql數(shù)據(jù)庫中的user授權(quán)表:
% mysql -u root mysql
mysql>UPDATE user SET password=PASSWORD("yourpassword") WHERE User="root";
如果你有MySQL的老版本,使用mysql和UPDATE。
在你設(shè)置完口令后,通過運(yùn)行下列命令檢查你是否需要告訴服務(wù)器重載授權(quán)表:
% mysqladmin -u root status
如果服務(wù)器仍然讓你以root而不指定口令而連接服務(wù)器,重載授權(quán)表:
% mysqladmin -u root reload
在你設(shè)置了root的口令后(并且如果需要重載了授權(quán)表),你將需要在任何時候以root連接服務(wù)器時指定
口令
您可能感興趣的文章:
相關(guān)文章
php 不使用js實(shí)現(xiàn)頁面跳轉(zhuǎn)
頁面跳轉(zhuǎn)大多情況下是使用js,其實(shí)也可以不用,下面為大家介紹下具體的實(shí)現(xiàn),需要的朋友可以參考下2014-02-02PHP編程過程中需要了解的this,self,parent的區(qū)別
this是指向?qū)ο髮?shí)例的一個指針,在實(shí)例化的時候來確定指向;self是對類本身的一個引用,一般用來指向類中的靜態(tài)變量;parent是對父類的引用,一般使用parent來調(diào)用父類的構(gòu)造函數(shù)。2009-12-12PHP中數(shù)組轉(zhuǎn)換為SimpleXML教程
在本篇文章中我們給大家總結(jié)了一篇關(guān)于PHP中數(shù)組轉(zhuǎn)換為SimpleXML教程內(nèi)容,有需要的朋友們跟著學(xué)習(xí)參考下。2019-01-01