type
status
date
slug
summary
tags
category
icon
password

背景

在 MySQL 8.0.16 之前,如果我們要給予 USER 除了某個 DATABASE 以外都有權限,只能夠每個 DATABASE 都 GRANT 一次權限,這方面有時候並不是很方便。例如:總共有 100 個 DATABASE 其中只有 1 個不給予 USER 權限,我們就需要執行 99 個 GRANT 語法。
從 MySQL 8.0.16 開始,推出了可以回收部分權限 (Partial Revokes) 的功能,將粗粒度的 GRANT 權限用 REVOKE 收回一部分細粒度權限,大大增加了這方面需求的方便性。

展示

目標是給予 USER 除了 mysql.* 以外的所有權限,請查看以下範例:
  • 當 MySQL 版本低於 8.0.16 或者關閉 partial revokes 功能,我們只能逐一給予其他 DB 權限:
    • 當 MySQL 版本不小於 8.0.16 且開啟 partial revokes 功能,就能很方便的完成需求:

      參考