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
문을 사용하여 권한 집합이 있는 역할을 만들 수 있습니다. 그런 다음, GRANT
및 SET 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
를 지정합니다. 다른 AWS 서비스에 대한 액세스 절차는 Amazon Aurora MySQL을 다른 AWS 서비스와 통합 섹션을 참조하세요. Aurora MySQL 버전 3에는 다른 AWS 서비스에 대한 액세스와 관련된 다음 역할이 포함됩니다.user
-
AWS_LAMBDA_ACCESS
–INVOKE LAMBDA
권한에 대한 대안입니다. 사용 정보는 Amazon Aurora MySQL DB 클러스터에서 Lambda 함수 호출 단원을 참조하세요. -
AWS_LOAD_S3_ACCESS
–LOAD FROM S3
권한에 대한 대안입니다. 사용 정보는 Amazon S3 버킷의 텍스트 파일에서 Amazon Aurora MySQL DB 클러스터로 데이터 로드 단원을 참조하세요. -
AWS_SELECT_S3_ACCESS
–SELECT INTO S3
권한에 대한 대안입니다. 사용 정보는 Amazon Aurora MySQL DB 클러스터에서 Amazon S3 버킷의 텍스트 파일로 데이터 저장 단원을 참조하세요. -
AWS_COMPREHEND_ACCESS
–INVOKE COMPREHEND
권한에 대한 대안입니다. 사용 정보는 데이터베이스 사용자에게 Aurora 기계 학습에 대한 액세스 권한 부여 단원을 참조하세요. -
AWS_SAGEMAKER_ACCESS
–INVOKE SAGEMAKER
권한에 대한 대안입니다. 사용 정보는 데이터베이스 사용자에게 Aurora 기계 학습에 대한 액세스 권한 부여 단원을 참조하세요. -
AWS_BEDROCK_ACCESS
– Amazon Bedrock에는 유사한INVOKE
권한이 없습니다. 사용 정보는 데이터베이스 사용자에게 Aurora 기계 학습에 대한 액세스 권한 부여 단원을 참조하세요.
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
설정은 변경할 수 없습니다.