MySQL數(shù)據(jù)庫安全配置介紹第2/2頁
3、外部網(wǎng)絡(luò)安全
MySQL數(shù)據(jù)庫安裝好以后,Unix平臺的user表是這樣的:
mysql> use mysql;
Database changed
mysql> select Host,User,Password,Select_priv,Grant_priv from user;
4 rows in set (0.00 sec)
Windows平臺的user表是這樣的:
mysql> use mysql;
Database changed
mysql> select Host,User,Password,Select_priv,Grant_priv from user;
4 rows in set (0.00 sec)
我們先來看Unix平臺的user表。其中redhat只是我試驗(yàn)機(jī)的機(jī)器名,所以實(shí)際上Unix平臺的MySQL默認(rèn)只允許本機(jī)才能連接數(shù)據(jù)庫。但是缺省root用戶口令是空,所以當(dāng)務(wù)之急是給root用戶加上口令。給數(shù)據(jù)庫用戶加口令有三種方法:
1)在shell提示符下用mysqladmin命令來改root用戶口令:
shell>mysqladmin -uroot password test
這樣,MySQL數(shù)據(jù)庫root用戶的口令就被改成test了。(test只是舉例,我們實(shí)際使用的口令一定不能使用這種易猜的弱口令)
2)用set password修改口令:
mysql> set password for root@localhost=password('test');
這時root用戶的口令就被改成test了。
3)直接修改user表的root用戶口令:
mysql> use mysql;
mysql> update user set password=password('test') where user='root';
mysql> flush privileges;
這樣,MySQL數(shù)據(jù)庫root用戶的口令也被改成test了。其中最后一句命令flush privileges的意思是強(qiáng)制刷新內(nèi)存授權(quán)表,否則用的還是緩沖中的口令,這時非法用戶還可以用root用戶及空口令登陸,直到重啟MySQL服務(wù)器。
我們還看到user為空的匿名用戶,雖然它在Unix平臺下沒什么權(quán)限,但為了安全起見我們應(yīng)該刪除它:
mysql> delete from user where user='';
Windows版本MySQL的user表有很大不同,我們看到Host字段除了localhost還有是%。這里%的意思是允許任意的主機(jī)連接MySQL服務(wù)器,這是非常不安全的,給攻擊者造成可乘之機(jī),我們必須刪除Host字段為%的記錄:
4、一些小竅門
1)如果不慎忘記了MySQL的root密碼,我們可以在啟動MySQL服務(wù)器時加上參數(shù)--skip-grant-tables來跳過授權(quán)表的驗(yàn)證 (./safe_mysqld --skip-grant-tables &),這樣我們就可以直接登陸MySQL服務(wù)器,然后再修改root用戶的口令,重啟MySQL就可以用新口令登陸了。
2)啟動MySQL服務(wù)器時加--skip-show-database使一般數(shù)據(jù)庫用戶不能瀏覽其它數(shù)據(jù)庫。
3)啟動MySQL服務(wù)器時加上--chroot=path參數(shù),讓mysqld守護(hù)進(jìn)程運(yùn)行在chroot環(huán)境中。這樣SQL語句LOAD DATA INFILE和SELECT ... INTO OUTFILE就限定在chroot_path下讀寫文件了。這里有一點(diǎn)要注意,MySQL啟動后會建立一個mysql.sock文件,默認(rèn)是在/tmp目錄下。使用了chroot后,MySQL會在chroot_path/tmp去建立mysql.sock文件,如果沒有chroot_path/tmp目錄或啟動MySQL的用戶沒有這個目錄寫權(quán)限就不能建立mysql.sock文件,MySQL會啟動失敗。比如我們加了--chroot=/usr/local/mysql/啟動參數(shù),那么最好建立一個啟動MySQL的用戶能寫的/usr/local/mysql/tmp目錄,當(dāng)然我們也可以用--socket=path來指定mysql.sock文件的路徑,但這個path一定要在chroot_path里面。
4)啟動MySQL服務(wù)器時加上--log-slow-queries=file參數(shù),這樣mysqld會把SQL命令執(zhí)行時間超過long_query_time的寫入file文件。如果沒有指定=file,mysqld默認(rèn)會寫到數(shù)據(jù)目錄下的hostname-slow.log。如果只指定了filename,沒有指定路徑,那么mysqld也會把filename寫到數(shù)據(jù)目錄下。我們通過這個日志文件可以找出執(zhí)行時間超長的查詢語句,然后盡可能的優(yōu)化它減輕MySQL服務(wù)器的負(fù)擔(dān)。
5)如果我們只需本機(jī)使用MySQL服務(wù),那么我們還可以加上--skip-networking啟動參數(shù)使MySQL不監(jiān)聽任何TCP/IP連接,增加安全性。(非常推薦)
6)MySQL的更多mysqld啟動選項(xiàng)請見MySQL手冊4.16.4 mysqld Command-line Options
References
MySQL Manual(http://www.mysql.com/documentation/index.html)
晏子的MySQL管理員指南(http://clyan.hongnet.com/index.html)
Access Granted(http://www.devshed.com/Server_Side/MySQL/Access)
- 新安裝的MySQL數(shù)據(jù)庫需要注意的安全知識
- MySQL安全設(shè)置圖文教程
- Win2003服務(wù)器安裝及設(shè)置教程 MySQL安全設(shè)置圖文教程
- MySQL的安全問題從安裝開始說起
- MySQL數(shù)據(jù)庫安全設(shè)置與注意事項(xiàng)小結(jié)
- MySQL數(shù)據(jù)庫安全之防止撰改的方法
- MySQL數(shù)據(jù)庫中的安全設(shè)置方案
- 淺析MySQL的注入安全問題
- Ubuntu上安裝MySQL+問題處理+安全優(yōu)化
- 關(guān)于加強(qiáng)MYSQL安全的幾點(diǎn)建議
- MySQL安全策略(MySQL安全注意事項(xiàng))
相關(guān)文章
使用use index優(yōu)化sql查詢的詳細(xì)介紹
本篇文章是對使用use index優(yōu)化sql查詢進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06mysql觸發(fā)器實(shí)時檢測一條語句進(jìn)行備份刪除思路詳解
遇到過這樣一個需求,在一張表里會不時出現(xiàn) “違規(guī)” 字樣的字段,需要在出現(xiàn)這個字段的時候,把整行的數(shù)據(jù)刪掉,針對這個需求我們該如何操作呢,下面跟隨小編看下mysql觸發(fā)器實(shí)時檢測一條語句進(jìn)行備份刪除的解決思路,一起看看吧2021-09-09MySQL數(shù)據(jù)庫內(nèi)置函數(shù)使用說明
這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫內(nèi)置函數(shù)使用說明的相關(guān)資料,MySQL提供了多種內(nèi)置函數(shù)來實(shí)現(xiàn)不同的功能,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12MySQL數(shù)據(jù)庫備份和還原的常用命令小結(jié)
MySQL數(shù)據(jù)庫備份和還原的常用命令小結(jié),學(xué)習(xí)mysql的朋友可以參考下2012-03-03Linux 安裝JDK Tomcat MySQL的教程(使用Mac遠(yuǎn)程訪問)
這篇文章主要介紹了Linux 安裝JDK Tomcat MySQL(使用Mac遠(yuǎn)程訪問),本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06