比較 Aurora 我的SQL版本 3 和我的 SQL 8.0 社區版 - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

比較 Aurora 我的SQL版本 3 和我的 SQL 8.0 社區版

您可以使用下列資訊,瞭解從不同的 My SQL 8.0 相容系統轉換為 Aurora My SQL 版本 3 時應注意的變更。

一般來說,Aurora 我的SQL版本 3 支持我的 SQL 8.0.23 社區的功能集。「我的 SQL 8.0 社群版」中的某些新功能不適用於我的 AuroraSQL. 其中有些功能與 Aurora 的某些方面不相容,例如 Aurora 儲存架構。不需要其他功能,因為 Amazon RDS 管理服務提供了等效的功能。在 Aurora 我的SQL版本 3 中,社群「我的 SQL 8.0」中的下列功能不受支援或運作方式不同。

如需所有 Aurora 我的SQL版本 3 發行版本的版本資訊,請參閱 Amazon Aurora 的SQL版本說明中的資料庫引擎更新我的版本 3 SQL。

我的 SQL 8.0 功能在 Aurora 我的SQL版本 3 中不可用

以下社群 My SQL 8.0 的功能在 Aurora 我的SQL版本 3 中無法使用或運作方式不同。

  • Aurora My 中不支援資源群組和相關聯的SQL陳述式SQL。

  • Aurora My SQL 不支援使用者定義的還原表格空間和相關聯的SQL陳述式,例如CREATE UNDO TABLESPACEALTER UNDO TABLESPACE ... SET INACTIVE、和DROP UNDO TABLESPACE.

  • 我的 Aurora SQL 不支援 Aurora 的還原表格空間截斷我的SQL版本低於 3.06。在 Aurora 我的 3.06 SQL 版及更高版本中,支援自動還原表格空間截斷

  • 您無法修改任何「我的SQL外掛程式」的設定。

  • 不支援 X 外掛程式。

  • 不支援多來源複寫。

角色型權限模型

使用 Aurora 我的SQL版本 3 時,您無法直接修改mysql資料庫中的資料表。尤其,您無法藉由插入至 mysql.user 資料表來設定使用者。而是使用SQL陳述式來授與以角色為基礎的權限。您也無法建立其他類型的物件,例如 mysql 資料庫中已存放的程序。您仍然可以查詢 mysql 資料表。如果您使用二進位日誌複寫,則直接對來源叢集上 mysql 資料表所做的變更不會複寫至目標叢集。

在某些情況下,您的應用程式可能會使用捷徑來建立使用者或其他物件,方法是插入至 mysql 資料表。若是這樣,請變更您應用程式的程式碼來使用對應的陳述式,例如 CREATE USER。如果您的應用程式在 mysql 資料庫中建立已存放的程序或其他物件,請改為使用不同的資料庫。

若要在從外部 My 資料庫移轉期間匯出資料SQL庫使用者的詮釋資料,您可以使用 My SQL Shell 命令來代替mysqldump。如需詳細資訊,請參閱執行個體傾印公用程式、結構描述傾印公用程式和資料表傾印

若要簡化許多使用者或應用程式的權限管理,您可以使用 CREATE ROLE 陳述式來建立具有一組權限的角色。然後,您可以使用 GRANTSET ROLE 陳述式,以及 current_role 函數,將角色指派給使用者或應用程式、切換目前角色,並檢查哪些角色有效。如需 My SQL 8.0 中以角色為基礎的權限系統的詳細資訊,請參閱我的SQL參考手冊中的使用角色

重要

我們強烈建議您不要直接在您的應用程式中使用主要使用者。而是遵循最佳實務,使用以應用程式所需的最低權限建立的資料庫使用者。

rds_ 超級用戶角色

Aurora 我的SQL版本 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 我的SQL版本 3.04 及更高版本)

  • SHOW VIEW

  • TRIGGER

  • UPDATE

  • XA_RECOVER_ADMIN

角色定義還包括 WITH GRANT OPTION,以便管理使用者可以將該角色授與其他使用者。尤其是,系統管理員必須授與以 Aurora My SQL 叢集做為目標執行二進位記錄複寫所需的任何權限。

提示

若要查看權限的完整詳細資訊,請輸入下列陳述式。

SHOW GRANTS FOR rds_superuser_role@'%'; SHOW GRANTS FOR name_of_administrative_user_for_your_cluster@'%';

權限檢查使用者的二進位記錄複寫

Aurora 我的SQL版本 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 我的SQL版本 3 包含可用於存取其他 AWS 服務的角色。您可以將這些角色中的許多角色設定為授與權限的替代方法。例如,您可以指定 GRANT AWS_LAMBDA_ACCESS TO user,而不是 GRANT INVOKE LAMBDA ON *.* TO user。如需存取其他 AWS 服務的程序,請參閱將 Amazon Aurora MySQL 與其他 AWS 服務整合。Aurora 我的SQL版本 3 包含下列與存取其他 AWS 服務相關的角色:

當您使用 Aurora My SQL 版本 3 中的角色授予存取權時,也可以使用SET ROLE role_nameSET 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 active mysql> SELECT CURRENT_ROLE(); +-----------------------------------------------------+ | CURRENT_ROLE() | +-----------------------------------------------------+ | `AWS_SELECT_S3_ACCESS`@`%`,`rds_superuser_role`@`%` | +-----------------------------------------------------+

身分驗證

在我的 SQL 8.0 社區中,默認身份驗證插件是caching_sha2_password。Aurora 我的SQL版本 3 仍然使用mysql_native_password插件. 您無法變更 default_authentication_plugin 設定。