本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
比較 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 TABLESPACE
ALTER 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
陳述式來建立具有一組權限的角色。然後,您可以使用 GRANT
和 SET 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
。如需存取其他 AWS 服務的程序,請參閱將 Amazon Aurora MySQL 與其他 AWS 服務整合。Aurora 我的SQL版本 3 包含下列與存取其他 AWS 服務相關的角色:user
-
AWS_LAMBDA_ACCESS
—INVOKE LAMBDA
權限的替代方法。如需使用方式的資訊,請參閱 從 Amazon Aurora 我的數SQL據庫集群調用 Lambda 函數。 -
AWS_LOAD_S3_ACCESS
—LOAD FROM S3
權限的替代方法。如需使用方式的資訊,請參閱 將資料從 Amazon S3 儲存貯體中的文字檔案載入 Amazon Aurora 我的資料SQL庫叢集。 -
AWS_SELECT_S3_ACCESS
—SELECT INTO S3
權限的替代方法。如需使用方式的資訊,請參閱 將資料從 Amazon Aurora 我的資料SQL庫叢集儲存到 Amazon S3 儲存貯體中的文字檔。 -
AWS_COMPREHEND_ACCESS
—INVOKE COMPREHEND
權限的替代方法。如需使用方式的資訊,請參閱 授與資料庫使用者存取 Aurora Machine Learning 的權限。 -
AWS_SAGEMAKER_ACCESS
—INVOKE SAGEMAKER
權限的替代方法。如需使用方式的資訊,請參閱 授與資料庫使用者存取 Aurora Machine Learning 的權限。 -
AWS_BEDROCK_ACCESS
— Amazon 基岩沒有類似的INVOKE
特權。如需使用方式的資訊,請參閱 授與資料庫使用者存取 Aurora Machine Learning 的權限。
當您使用 Aurora My SQL 版本 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`@`%` | +-----------------------------------------------------+
身分驗證
在我的 SQL 8.0 社區中,默認身份驗證插件是caching_sha2_password
。Aurora 我的SQL版本 3 仍然使用mysql_native_password
插件. 您無法變更 default_authentication_plugin
設定。