Aurora MySQL 버전 3과 MySQL 8.0 커뮤니티 에디션 비교 - Amazon Aurora

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에 대한 데이터베이스 엔진 업데이트를 참조하세요.

Aurora MySQL 버전 3에서 MySQL 8.0 기능을 사용할 수 없음

커뮤니티 MySQL 8.0의 다음 기능은 Aurora MySQL 버전 3에서 사용할 수 없거나 다르게 작동합니다.

  • Aurora MySQL에서는 Resource Groups 및 관련 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 데이터베이스에서 마이그레이션하는 동안 데이터베이스 사용자의 메타데이터를 내보내려면 mysqldump 대신 MySQL Shell 명령을 사용할 수 있습니다. 자세한 내용은 Instance Dump Utility, Schema Dump Utility, and Table Dump Utility를 참조하세요.

많은 사용자 또는 애플리케이션에 대한 권한 관리를 단순화하려면 CREATE ROLE 문을 사용하여 권한 집합이 있는 역할을 만들 수 있습니다. 그런 다음, GRANTSET ROLE 문과 current_role 함수를 사용하여 사용자 또는 애플리케이션에 역할을 할당하고 현재 역할을 전환하며 어떤 역할이 유효한지 확인할 수 있습니다. MySQL 8.0의 역할 기반 권한 시스템에 대한 자세한 내용은 MySQL 참조 설명서의 역할 사용을 참조하세요.

중요

애플리케이션에서 직접 마스터 사용자를 사용하지 않는 것이 좋습니다. 대신에 애플리케이션에 필요한 최소 권한으로 생성한 데이터베이스 사용자를 사용하는 모범 사례를 준수하십시오.

rds_superuser_role

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 INVOKE LAMBDA ON *.* TO user 대신 GRANT AWS_LAMBDA_ACCESS TO user를 지정합니다. 다른 AWS 서비스에 대한 액세스 절차는 Amazon Aurora MySQL을 다른 AWS 서비스와 통합 섹션을 참조하세요. Aurora MySQL 버전 3에는 다른 AWS 서비스에 대한 액세스와 관련된 다음 역할이 포함됩니다.

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 active mysql> 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 설정은 변경할 수 없습니다.