首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 資料庫安全配置實操:權限設定、用戶管理與服務啟動最佳實踐

     編輯:MySQL 綜合教學

標準安全目錄結構驗證

以 /usr/local/mysql 安裝路徑為例,安全的目錄權限應為:

drwx------ 4 mysql mysql 4096 var
drwx------ 2 mysql mysql 4096 var/mysql
drwx------ 2 mysql mysql 4096 var/test
-rw------- 1 mysql mysql ... var/mysql/*.MYD
-rw------- 1 mysql mysql ... var/mysql/*.MYI
-rw------- 1 mysql mysql ... var/mysql/*.frm

權限修正指令

# 修正擁有者
chown -R mysql:mysql /usr/local/mysql/var

# 修正權限:目錄 700,檔案 660
chmod -R go-rwx /usr/local/mysql/var
find /usr/local/mysql/var -type d -exec chmod 700 {} \;
find /usr/local/mysql/var -type f -exec chmod 660 {} \;

服務啟動用戶管理

檢查當前啟動用戶

ps aux | grep mysqld

建立專用 mysql 用戶(若不存在)

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

啟動腳本指定用戶

# mysqld_safe 或 systemd 服務檔中指定
User=mysql
Group=mysql

root 帳號安全加固

  1. 設定強密碼:
    mysqladmin -u root password 'StrongP@ssw0rd!'
  2. 移除匿名帳號:
    DELETE FROM mysql.user WHERE User='';
  3. 禁止 root 遠程登入:
    UPDATE mysql.user SET Host='localhost' WHERE User='root';
    FLUSH PRIVILEGES;
  4. 重命名 root 帳號(進階):
    RENAME USER 'root'@'localhost' TO 'dbadmin'@'localhost';

應用帳號最小權限範例

CREATE USER 'app_user'@'10.0.1.%' IDENTIFIED BY 'AppP@ssw0rd!';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app_user'@'10.0.1.%';
FLUSH PRIVILEGES;

定期安全巡檢清單

  • [ ] 檢查 mysql.user 是否有無密碼/弱密碼帳號
  • [ ] 確認 bind-address 非 0.0.0.0
  • [ ] 驗證資料目錄權限為 700/660
  • [ ] 審計 SHOW GRANTS 確認權限最小化
  • [ ] 檢查錯誤日誌異常登入嘗試
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved