天天看點

mysql使用者密碼安全閉環,自主維護自己的資料安全

作者:蠟筆小賢

在企業中,為了保證資料庫的安全,一般的政策是對資料庫設立多個使用者,給每個使用者的密碼設定有效期,讓使用者在一定的時間進行更新,以保證資料庫的資料安全。

同時,為了保證資料庫密碼的安全,除了設定一定的密碼複雜度外,還會設定密碼的曆史政策,如密碼不能與前5次相同,密碼不能使用一年内使用過的密碼等等政策。

設立這些政策還不夠,為了給客戶一個比較好的體驗,我們必須還需要增加一個告警機制,在密碼過期前多少天,發送告警郵箱給管理者,讓管理者在合适的時間内進行更改密碼。這樣就可以防止mysql資料庫密碼突然失效,所有服務都連不上資料庫,導緻服務不可用。

下面給mysql使用者密碼安全閉環提供簡單的方案:

1.mysql資料庫使用者密碼設定過期時間

create user 'test'@'127.0.0.1' identified with mysql_native_password by 'Test@2023'
#密碼一年有效期
PASSWORD EXPIRE INTERVAL 365 DAY
#密碼不能與前5次相同    
PASSWORD HISTORY 5
#密碼不能使用一年内使用過的密碼    
PASSWORD REUSE INTERVAL 365 DAY
PASSWORD REQUIRE CURRENT
FAILED_LOGIN_ATTEMPTS 50 PASSWORD_LOCK_TIME 1;
grant select, insert, update, delete, create, alter, index on \`table%\`.* to test@'127.0.0.1';
grant select, insert, update, delete, create, alter, index on table2.* to test@'127.0.0.1';
grant select on mysql.user to test@'127.0.0.1';           

2.密碼有效期提前告警機制

告警的一個前提是擷取資料庫密碼的過期時間,通過root使用者登入資料庫,查詢mysql.user表是可以看到每個使用者的密碼修改時間和有效天數。

mysql使用者密碼安全閉環,自主維護自己的資料安全
mysql使用者密碼安全閉環,自主維護自己的資料安全
mysql使用者密碼安全閉環,自主維護自己的資料安全

其中password_last_changed就是密碼最後一次修改的時間。

password_lifetime就是密碼有效期。

告警的機制就是在web頁面中配置提前xx天給管理者發送告警,然後在背景中設定一個每天淩晨00:00的定時任務,去計算目前時間是否到了告警的門檻值。

mysql使用者密碼安全閉環,自主維護自己的資料安全

修改mysql使用者密碼的shell腳本如下:

mysql使用者密碼安全閉環,自主維護自己的資料安全
mysql使用者密碼安全閉環,自主維護自己的資料安全

自此,mysql使用者密碼安全就算是一個比較合理的閉環方案了。

繼續閱讀