天天看點

【MySQL】5.7新特性之一

寫在前面

一 安全性

   MySQL 5.7 的目标是成為釋出以來最安全的 MySQL 伺服器,其在 SSL/TLS 和全面安全開發方面有一些重要的改變。

1.1 5.7版本的使用者表mysql.user要求plugin字段非空,且預設值是mysql_native_password,并且不再支援mysql_old_password。

設定 使用者的過期時間為 90天

ALTER USER yangyi@'127.0.0.1' PASSWORD EXPIRE INTERVAL 90 DAY;

設定 使用者密碼永遠不過期

ALTER USER yangyi@'127.0.0.1' PASSWORD EXPIRE NEVER;

可能大家都有如果業務系統的賬号某一天突然過期了,業務受到影響 怎麼辦? 别擔心那麼可以設定密碼永不過期。  

default_password_lifetime=0

1.3 DBA可以通過對使用者加鎖/ 解鎖進一步控制其通路db 。

例子

mysql> alter user yang@'%' account lock;

Query OK, 0 rows affected (0.00 sec)

root@rac4:/srv/my3306/data# >mysql -uyang -h127.0.0.1 -p

Enter password:

ERROR 3118 (HY000): Access denied for user 'yang'@'localhost'. Account is locked.

mysql> alter user yang@'%' account unlock;

shell> bin/mysql_ssl_rsa_setup # MySQL 5.7.6 and up

推薦兩篇延伸閱讀,關于SSL 特性我相信絕大多數資料庫都沒有開啟,姜承堯文章中的測試案例顯示弱開啟SSL 性能開銷在25% 左右。大家在嘗試新的特性的時候 ,根據自己的業務做評估。

1.5 使用更安全的初始化方式

逐漸廢棄mysql_install_db的安裝方式使用 initialize代替(mysql_install_db <5.7.6<= mysqld  —initialize) ,使用  initialize 參數初始化資料庫有如下特性 

a 隻建立一個 root賬号,并且生成一個臨時的标記為過期密碼

b 不建立其他賬号

c 不建立test 資料庫

特别強調與—initialize 不同 ,初始化的時候 使用參數

參考文檔