MySQL安裝後的基本安全最佳化

來源:互聯網
上載者:User

標籤:tps   命令列   version   主機名稱   bash   shel   安裝   cat   backup   

MySQL5.6及以下的版本,安裝後預設內建一個test的資料庫,並且在MySQL5.6中,mysql.user使用者表中帶有使用者名稱為空白的使用者,等等的預設設定,這些都是不安全的,容易給他人利用的機會。所以需要在安裝MySQL後做些最佳化,加強MySQL資料庫的安全性。
  • 1、作業系統與MySQL的基本環境資訊:
          作業系統版本、作業系統核心版本:lsb_release -a、uname -r                

   MySQL資料庫版本:mysql> select version();

    

    MySQL資料庫安裝後預設的資料庫列表:mysql> show databases;         MySQL資料庫安裝後預設的使用者列表:mysql> select user, host from mysql.user;   
  • 2、修正方法:
1)、刪除 除 [email protected] 及 [email protected]$hostname 外的其他賬戶:mysql> drop user ‘‘@‘localhost‘;mysql> drop user ‘‘@‘apptest‘;mysql> drop user ‘root‘@‘::1‘; # IPV6mysql> drop user ‘root‘@‘apptest‘;mysql> select user, host from mysql.user; # 驗證是否刪除成功2)、刪除test資料庫:mysql> drop database test;mysql> show databases; # 驗證是否刪除成功3)、修改預設的root密碼:mysql> set password for ‘root‘@‘localhost‘ = password("chiscdc");# 最好是通過下面的mysqladmin互動命令進行重新設定root密碼。shell> mysqladmin -uroot -hlocalhost -p -S /application/mysql/3306/mysql.sock passwordshell> mysqladmin -uroot -h<hostname> -p -S /application/mysql/3306/mysql.sock password 
  • 3、平時對資料庫使用者的授權問題:
堅持最小化許可權的原則,對一個庫有只有一個專門的使用者有操作許可權;即在授權時,需要指定資料庫名、主機名稱,且主機名稱中不要包含任何萬用字元“%”。mysql> grant all privileges on jhmyTest.* to ‘test‘@‘192.168.231.9/255.255.255.0‘ identified by "chiscdc";mysql> flush privileges;mysql> show grants for ‘test‘@‘192.168.231.9/255.255.255.0‘; # 查看使用者權限 

 

4、其他安全注意事項,防止MySQL資料庫密碼的泄漏:

禁止在shell命令列中輸入資料庫密碼:當在shell命令列中輸入純文字密碼時,會被Linux記錄到操作記錄檔案中(可以通過 history命令查看),從而導緻密碼泄漏。1)、通過mysqladmin命令修改mysql使用者密碼:錯誤做法,在pasword後直接跟密碼字串: shell> mysqladmin -uroot -p -S /application/mysql/3306/mysql.sock password "chiscdc" 正確做法:不在password關鍵字後寫任何字串,通過互動方式輸入新的密碼: shell> mysqladmin -uroot -p -S /application/mysql/3306/mysql.sock password

2)、通過mysql命令登入mysql:

錯誤做法,在-p後直接跟密碼字串: shell> mysql -uroot -pchiscdc -S /application/mysql/3306/mysql.sock

正確做法:不在-p後寫任何字串,通過互動方式輸入新的密碼: shell> mysql -uroot -p -S /application/mysql/3306/mysql.sock

 

 

3)、通過mysqldump命令進行定時備份資料庫:錯誤做法,在備份指令碼中寫明資料庫密碼,在-p後直接跟密碼字串:#!/bin/bash# Backup the MySQL Database Scriptsuser="root"passwd="chiscdc"mysqldump -u${user} -p${passwd} DBname > Dbname.sql 正確做法【官方文檔說是最安全的做法,點此查看官方文檔說明】:通過mysql_config_editor命令列工具將MySQL使用者名稱、密碼、socket等寫入單獨的檔案中(自動加密了),並且檔案賦予只有該檔案所屬使用者唯讀許可權(400),然後在指令碼mysqldump命令中通過--defults-file參數讀取使用者名稱密碼:shell> mysql_config_editor set --login-path=client --user=root --host=localhost --socket=/application/mysql/3306/mysql.sock --password shell> mysql_config_editor print --all設定後,在上面指定的host伺服器上登入mysql資料庫,也不需要輸入使用者名稱、密碼等。

 

新的備份指令碼,也不需要指定主機名稱、使用者名稱、密碼等:#!/bin/bash# Backup the MySQL Database Scripts mysqldump --all-databases > backup1.sql # End Of File 

MySQL安裝後的基本安全最佳化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.