本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Aurora MySQL 第 3 版與 MySQL 8.0 社群版的比較
您可以使用下列資訊,來了解當您從不同的 MySQL 8.0 相容系統轉換為 Aurora MySQL 第 3 版時,應注意的變更。
通常,Aurora MySQL 第 3 版支援社群 MySQL 8.0.23 的功能集。來自 MySQL 8.0 社群版的一些新功能不適用於 Aurora MySQL。其中有些功能與 Aurora 的某些方面不相容,例如 Aurora 儲存架構。不需要其他功能,因為 Amazon RDS 管理服務會提供同等功能。社群 MySQL 8.0 中的下列功能不受支援,或在 Aurora MySQL 第 3 版中以不同方式運作。
如需所有 Aurora MySQL 第 3 版的版本備註,請參閱 Aurora MySQL 版本備註中的 Amazon Aurora MySQL 第 3 版的資料庫引擎更新。
MySQL 8.0 功能不適用於 Aurora MySQL 第 3 版
來自社群 MySQL 8.0 中的下列功能無法使用,或在 Aurora MySQL 第 3 版中以不同方式運作。
-
Aurora MySQL 中不支援資源群組和相關聯的 SQL 陳述式。
-
Aurora MySQL 不支援使用者定義的還原表格空間和相關的 SQL 陳述式,例如
CREATE UNDO TABLESPACE
ALTER UNDO TABLESPACE ... SET INACTIVE
、和DROP UNDO TABLESPACE
. -
Aurora MySQL 不支援還原表格空間截斷功能,適用於低於 3.06 的 Aurora MySQL 版本。在 Aurora MySQL 版本 3.06 及更高版本中,支援自動還原表格空間截斷
。 -
您無法修改任何 MySQL 外掛程式的設定。
-
不支援 X 外掛程式。
-
不支援多來源複寫。
角色型權限模型
使用 Aurora MySQL 第 3 版,您無法直接修改 mysql
資料庫中的資料表。尤其,您無法藉由插入至 mysql.user
資料表來設定使用者。相反地,您可以使用 SQL 陳述式來授與角色型權限。您也無法建立其他類型的物件,例如 mysql
資料庫中已存放的程序。您仍然可以查詢 mysql
資料表。如果您使用二進位日誌複寫,則直接對來源叢集上 mysql
資料表所做的變更不會複寫至目標叢集。
在某些情況下,您的應用程式可能會使用捷徑來建立使用者或其他物件,方法是插入至 mysql
資料表。若是這樣,請變更您應用程式的程式碼來使用對應的陳述式,例如 CREATE
USER
。如果您的應用程式在 mysql
資料庫中建立已存放的程序或其他物件,請改為使用不同的資料庫。
若要在從外部 MySQL 資料庫移轉期間匯出資料庫使用者的詮釋資料,您可以使用 MySQL 命令來代替mysqldump
。如需詳細資訊,請參閱執行個體傾印公用程式、結構描述傾印公用程式和資料表傾印
若要簡化許多使用者或應用程式的權限管理,您可以使用 CREATE ROLE
陳述式來建立具有一組權限的角色。然後,您可以使用 GRANT
和 SET ROLE
陳述式,以及 current_role
函數,將角色指派給使用者或應用程式、切換目前角色,並檢查哪些角色有效。如需 MySQL 8.0 中角色型權限系統的詳細資訊,請參閱《MySQL 參考手冊》中的使用角色
重要
我們強烈建議您不要直接在您的應用程式中使用主要使用者。而是遵循最佳實務,使用以應用程式所需的最低權限建立的資料庫使用者。
rds_ 超級用戶角色
Aurora MySQL 第 3 版包含具有下列所有權限的特殊角色。此角色已命名為 rds_superuser_role
。每個叢集的主要管理使用者已授與此角色。rds_superuser_role
角色包含所有資料庫物件的下列權限:
-
ALTER
-
APPLICATION_PASSWORD_ADMIN
-
ALTER ROUTINE
-
CONNECTION_ADMIN
-
CREATE
-
CREATE ROLE
-
CREATE ROUTINE
-
CREATE TEMPORARY TABLES
-
CREATE USER
-
CREATE VIEW
-
DELETE
-
DROP
-
DROP ROLE
-
EVENT
-
EXECUTE
-
INDEX
-
INSERT
-
LOCK TABLES
-
PROCESS
-
REFERENCES
-
RELOAD
-
REPLICATION CLIENT
-
REPLICATION SLAVE
-
ROLE_ADMIN
-
SET_USER_ID
-
SELECT
-
SHOW DATABASES
-
SHOW_ROUTINE
(Aurora MySQL 3.04 版及更新版本) -
SHOW VIEW
-
TRIGGER
-
UPDATE
-
XA_RECOVER_ADMIN
角色定義還包括 WITH GRANT OPTION
,以便管理使用者可以將該角色授與其他使用者。尤其,管理員必須授與執行二進位日誌複寫所需的任何權限,以 Aurora MySQL 叢集做為目標。
提示
若要查看權限的完整詳細資訊,請輸入下列陳述式。
SHOW GRANTS FOR rds_superuser_role@'%'; SHOW GRANTS FOR
name_of_administrative_user_for_your_cluster
@'%';
權限檢查使用者的二進位記錄複寫
Aurora MySQL 版本 3 包含使用者是否有二進位記錄檔 (binlog) 複寫的權限檢查。rdsrepladmin_priv_checks_user
除了的權限之外rds_superuser_role
,此使用者還具有replication_applier
權限。
當您通過調用mysql.rds_start_replication
存儲過程打開 binlog 複寫時,將創rdsrepladmin_priv_checks_user
建。
rdsrepladmin_priv_checks_user@localhost
使用者是保留的使用者。不要修改它。
存取其他服 AWS 務的角色
Aurora MySQL 第 3 版包含可用來存取其他 AWS
服務的角色。您可以將這些角色設定為 GRANT
陳述式的替代項目。例如,您可以指定 GRANT AWS_LAMBDA_ACCESS TO
,而不是 user
GRANT INVOKE
LAMBDA ON *.* TO
。如需存取其他 AWS 服務的程序,請參閱將 Amazon Aurora MySQL 與其他 AWS 服務整合。Aurora MySQL 第 3 版包含下列與存取其他 AWS 服務相關的角色:user
-
AWS_LAMBDA_ACCESS
角色,做為INVOKE LAMBDA
權限的替代項目。如需用法資訊,請參閱 從 Amazon Aurora MySQL 資料庫叢集叫用 Lambda 函式。 -
AWS_LOAD_S3_ACCESS
角色,做為LOAD FROM S3
權限的替代項目。如需使用方式的資訊,請參閱 從 Amazon S3 儲存貯體中的文字檔案將資料載入 Amazon Aurora MySQL 資料庫叢集。 -
AWS_SELECT_S3_ACCESS
角色,做為SELECT INTO S3
權限的替代項目。如需使用方式的資訊,請參閱 將來自 Amazon Aurora MySQL 資料庫叢集的資料儲存至 Amazon S3 儲存貯體中的文字檔案。 -
AWS_SAGEMAKER_ACCESS
角色,做為INVOKE SAGEMAKER
權限的替代項目。如需使用方式的資訊,請參閱 將 Amazon Aurora Machine Learning 與 Aurora MySQL 搭配使用。 -
AWS_COMPREHEND_ACCESS
角色,做為INVOKE COMPREHEND
權限的替代項目。如需使用方式的資訊,請參閱 將 Amazon Aurora Machine Learning 與 Aurora MySQL 搭配使用。
當使用 Aurora MySQL 第 3 版中的角色授與存取權時,您也可以使用 SET ROLE
或 role_name
SET ROLE ALL
陳述式啟用角色。下列範例會顯示作法。以適當的角色名稱替代 AWS_SELECT_S3_ACCESS
。
# Grant role to user.
mysql>
GRANT AWS_SELECT_S3_ACCESS TO 'user
'@'domain-or-ip-address
' # Check the current roles for your user. In this case, the AWS_SELECT_S3_ACCESS role has not been activated. # Only the rds_superuser_role is currently in effect.mysql>
SELECT CURRENT_ROLE();+--------------------------+ | CURRENT_ROLE() | +--------------------------+ | `rds_superuser_role`@`%` | +--------------------------+ 1 row in set (0.00 sec)
# Activate all roles associated with this user using SET ROLE. # You can activate specific roles or all roles. # In this case, the user only has 2 roles, so we specify ALL.mysql>
SET ROLE ALL;Query OK, 0 rows affected (0.00 sec)
# Verify role is now activemysql>
SELECT CURRENT_ROLE();+-----------------------------------------------------+ | CURRENT_ROLE() | +-----------------------------------------------------+ | `AWS_SELECT_S3_ACCESS`@`%`,`rds_superuser_role`@`%` | +-----------------------------------------------------+
身分驗證
在社群 MySQL 8.0 中,預設身分驗證外掛程式為 caching_sha2_password
。Aurora MySQL 第 3 版仍會使用 mysql_native_password
外掛程式。您無法變更 default_authentication_plugin
設定。