Mysql生產環境安全規範
一、Mysql伺服器安全規範
1. 禁止應用直連DB,一般通過代理訪問
2. 禁止DB公網訪問。
3. 禁止生產和辦公互通,需生產環境和辦公環境隔離。
4. Linux系統初始化安全選項:
1)、一些alias,寫入/etc/profile,防止誤操作
alias c='clear'
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias mysql='mysql -U'
其中mysql -U,防止update和delete沒有指定條件,拒絕操作。
2)、刪除linux操作日誌資訊、mysql操作歷史記錄,避免被拖庫。
rm .bash_history .mysql_history
ln -s /dev/null .bash_history
ln -s /dev/null .mysql_history
3)、避免"Too many open files"
OS限制:cat /etc/security/limits.conf,mysql使用者能夠開啟65535個檔案描述符
mysql soft nofile 65535
mysql hard nofile 65535
my.cnf引數修改:
open_files_limit = 65535
innodb_open_files=65535
5. Mysql初始化配置安全選項:
1)、合理規劃目錄結構,日誌目錄順序寫建議機械盤(binlog/slowlog/relaylog),資料目錄隨機寫建議ssd。
2)、Mysql相關目錄設定專用mysql組和使用者,Mysql後臺啟動方式不能以root來啟動,比如通過mysql使用者 。
3)、設定bind-address為內網本機IP。
4)、修改Mysql預設服務埠號,不推薦使用3306,不同業務設定不同的埠號。
5)、通過修改max_connections和max_user_connections來控制最大連線數,過載保護。
6)、啟用safe-user-create,使用者不能用GRANT語句建立新使用者,除非使用者有mysql.user表的INSERT許可權。
7)、禁止local-infile=1,開啟load data local file許可權,避免資料洩漏和黑客攻擊。
8)、禁止skip-grant-tables啟動,防止mysql繞過許可權系統
9)、配置加上skip-name-resolve,防止主機名不被解析。
10)、禁止skip-networking,其它機器不能使用tcp/ip連線。
11)、禁止symbolic-links=1,關閉軟連結功能。
二、Mysql帳號管理安全策略和Mysql許可權相關的系統表:
1. mysql.USER表
2. mysql.DB表
3. mysql.TABLES_PRIV表
4. mysql.COLUMNS_PRIV表
自上而下,逐級驗證,逐級進行賬戶許可權的粒度控制
Mysql初始化:
1. 刪除線上密碼長度小於16的帳號。
2. 刪除非root賬戶
3. 刪除非localhost和127.0.0.1賬戶。
4. 刪除test資料庫
5. 賬號區分:監控帳號、管理帳號、複製帳號、備份帳號、應用帳號
1)、監控帳號(localhost和127.0.0.1):
GRANT SELECT,PROCESS,REPLICATION CLIENT
2)、備份帳號(localhost和127.0.0.1):
GRANT SELECT,LOCK TABLES,RELOAD
3)、複製帳號(對應主庫ip):
GRANT REPLICATION SLAVE,REPLICATION CLIENT
4)、管理帳號(對應代理ip):
GRANT ALL PRIVILEGES
5)、root帳號
root密碼採用強密碼策略,至少32位隨機密碼,推薦使用pwgen和makepasswd來生成32位隨機密碼,包含大小寫、數字、字母、特殊字元。
root帳號只授權localhost和127.0.0.1,不得授予%許可權。
root帳號建議每3個月修改一次,不同例項,設定不同的root密碼。
6)、應用帳號
a. 應用帳號不得擁有Super、Create、Drop、File,Grant,Reload,Shutdown,Process等許可權。
b. 最小許可權原則:select,insert,update,delete許可權,禁止應用帳號許可權設定為all。
c. 應用帳號不得擁有系統資料庫(mysql)的任何許可權,不能使用*.*來授權。
d. 應用帳號只給所屬應用的資料庫授權,只給其所屬應用的IP或代理授權。
e. mysql從庫必須新增read-only,只給select許可權,嚴禁all,導致只讀失效。
f. 應用帳號密碼策略同root,建議每3個月修改一次。
三、Mysql資料安全策略
1. 物理(xtrabackup)和邏輯(mysqldump)相結合的備份策略,全備+增量+異地。
2. 資料庫備份檔案定期回放,定期驗證備份的可恢復性。
3. 針對重要業務系統建立delay資料庫或者採取Linux初始化時設定lvm策略,可快照閃回。
4. 假設Binlog Server,遇到緊急情況可資料恢復。
PS:Mysql命令列提示配置
mysql -uroot -p123456 --prompt="Mysql-\\v->[\\r:\\m:\\s] [\\[email protected]\\h:\\d] >"
相關推薦
Mysql生產環境安全規範
一、Mysql伺服器安全規範1. 禁止應用直連DB,一般通過代理訪問2. 禁止DB公網訪問。3. 禁止生產和辦公互通,需生產環境和辦公環境隔離。4. Linux系統初始化安全選項: 1)、一些alias,寫入/etc/profile,防止誤操作 a
mysql生產環境常用命令
sql insert evel enter HR bin proc sele comm 嘮嘮mysql的連接數 1.查看mysql的當前連接數 [root@localhost ~]# mysqladmin -uroot -p123456 status Uptime
mysql生產環境新增一臺新slave
9b2l6w言負禿寂旅潛《http://baobao.baidu.com/question/f69d74406ea559506ef583c30e33f41b?2018.09.16=qraD》 52u7pq拾孛溝晌冉噬《http://baobao.baidu.com/quest
MySQL生產環境下的主從複製啟動項
MySQL的複製引數除了我們之前搭建主從時遇到的那幾個之外,還有以下兩個: 1、log-slave-updates 這個引數用來配置從庫上是否啟動了二進位制日誌的功能,預設是不開啟的,如果開啟了那麼從庫上的更新操作將會被記錄到二進位制日誌中。 不過在級聯複製的架構中,比如某個從庫A也要作為其他伺服器的主
[MySQL] 生產環境MySQL資料庫事務一直在RUNNING
前言:運營人員反映,有一單子提交卡住了,頁面一直沒有返回。1,剛開始懷疑是應用伺服器或者db壓力過高hang住了,馬上去check應用伺服器以及db的負載,看起來都OK,蠻低的,應該不是DB效能問題。2,最後去看下是否是表鎖住了,檢視到有2個事務一直RUNNING,沒有結束。
生產環境Tomcat安全規範
Tomcat的安全 生產環境tomcat規範 1.更改服務監聽埠 若 Tomcat 都是放在內網的,則針對 Tomcat 服務的監聽地址都是內網地址 標準配置:<Connector port="10000" server="webserv
生產環境遇到的hashMap非線程安全問題java.lang.thread.waiting
線程安全 單點故障 pty isempty pan mage 分享 tab 記錄 寫在前面:工作有幾年了,從入門到現在,遇到也解決了一些問題。(當然,框架級別的暫時還沒有)一直以來,都是從博客園以及其他各大社區搜羅出來的各種fix方法。目前稍有閑暇時間,在看過大V沈劍的博文
如何在生產環境下實現每天自動備份mysql數據庫
mysql mysql備份 自動備份mysql mysql數據庫備份 甘兵 1、描述 我相信很多朋友在工作都都會有這種需求,老板或領導讓你每天都要備份mysql數據庫,你該如何實現呢,是每天到一定的時間在服務器上敲一遍mysql的備份命令,還是想寫個腳本,定時定點的自動備份呢?我相信
mysql + Python3.5.2 + Django + Uwsgi + Nginx實現生產環境
ast 配置 static var pst ads sgi 服務 關閉進程 官方文檔:http://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/tutorials/Django_and_nginx.html前面已經安裝好mysql數據
生產環境配置mysql主從復制
數據安全配置mysql主從復制環境:redhat 7.3 系統 兩臺主機 一臺master 一臺slave1、主從復制的步驟1、搭建時間NTP服務器,同步時間1)建立時間同步環境,在主節點上搭建時間同步服務器時間同步在此不再重復,可翻閱上次文檔。2、防火墻開放列外,或者直接關閉3、安裝mysql此步驟不再講
生產環境nginx配置文件(帶https安全認證)
tar edi proc method fault res root ash fas #user www www; worker_processes 2; error_log logs/error.log info; pid /usr/local/ng
Centos7.5 生產環境搭建MySQL 5.7主從
maria tps 隔離 地址 mys mov code eve get 環境:服務器兩臺:192.168.19.77 4核心,16G內存 內網隔離,不通外網192.168.19.78 4核心,16G內存 內網
如何在生產環境下實現每天自動備份mysql資料庫
www.syncnavigator.cn SyncNavigator 做資料同步時所支援的資料庫型別: 支援sqlserver 2000-2014所有版本,全相容,和MYsql 4.x 、MYsql 5.x 、MYsql 6.x版本。 來源資料庫和目標資料庫可以版本不同,比如:來源資料庫
踩坑經歷(七)MySQL匯出生產環境表結構和資料
在命令列視窗下執行即可 編號 需求 SQL 1 匯出資料庫為dbname的表結構(其中使用者名稱為root,密碼為dbpasswd,生成的指令碼名為db.sql) my
【轉】Docker 生產環境之安全性 - 適用於 Docker 的 Seccomp 安全配置檔案
安全計算模式(secure computing mode,seccomp)是 Linux 核心功能。可以使用它來限制容器內可用的操作。seccomp() 系統呼叫在呼叫程序的 seccomp 狀態下執行。可以使用此功能來限制你的應用程式的訪問許可權。 只有在使用&nb
Percona Mysql Galera多讀寫叢集部署生產環境實記
一、部署MySQL:yum install https://www.percona.com/redir/downloads/percona-release/redhat/latest/percona-release-0.1-6.noarch.rpm -y 安裝percona的倉庫檔案。yum install
Percona Mysql Galera多讀寫集群部署生產環境實記
trap sum 數據表 -- select interval red pau ads 一、部署MySQL:yum install https://www.percona.com/redir/downloads/percona-release/redhat/latest/
MySQL備份、安全、SQL規範與系統規劃
這是資料庫基礎的安全設定指令碼: 設定root密碼 移除匿名使用者 禁止遠端root登入 移除test資料庫 以上是5.6版本,5.7有所加強但也僅此而已,看看你的環境是否存在上述問題,這個算是最基本的安全吧。 2、連線訪問安全 常見建立使用者時你需要指定你的IP訪問地址範圍或者固定IP,一般而言,只有特
Centos7,MySQL 5.7.23(穩定版) 生產環境,二進位制壓縮包官網安裝步驟
1、進入MySQL官網,下載二進位制tar.gz壓縮包 進入 MySQL Community Server 5.7 » mysql 5.7社群版下載頁面。
mysql-測試環境對比生產環境-表、儲存過程
第一步:儲存測試環境、生產環境原有的表和儲存過程(做好本地備份不止為了對比,還可以防止資料庫出錯而無法還原) ①開啟mysql資料庫,選擇相應的資料庫 ②Database --》 Reverse Engineer Ctrl R(點選) ③Stored Connect