MySQL 사용자

이 페이지에서는 MySQL 사용자에 대한 Cloud SQL의 작동 방식을 설명합니다. MySQL 사용자 계정은 MySQL 데이터베이스 액세스를 제어하여 보안을 제공합니다.

MySQL 사용자에 관한 전체 문서는 MySQL 문서를 참조하세요. Cloud SQL 사용자 만들기 및 관리에 관한 자세한 내용은 사용자 만들기 및 관리를 참조하세요.

MySQL 사용자 계정이 필요한 이유

MySQL 사용자 계정을 통해 Cloud SQL 인스턴스에 로그인하여 이를 관리할 수 있습니다. 애플리케이션에서 인스턴스에 액세스할 때도 사용자 계정이 필요합니다.

수퍼유저 제한사항

MySQL용 Cloud SQL은 관리형 서비스이므로 고급 권한이 필요한 특정 시스템 프로시저 및 테이블에 대한 액세스를 제한합니다. Cloud SQL에서 고객은 수퍼유저 속성이 있는 사용자를 만들거나 이 사용자로 액세스할 수 없습니다.

MySQL 사용자 계정 형식

MySQL 사용자 계정은 사용자 이름 및 호스트 이름으로 구성됩니다. 사용자 이름은 사용자를 식별하며 호스트 이름은 사용자의 연결 호스트를 지정합니다. 사용자 이름과 호스트 이름이 결합되어 사용자 계정을 구성합니다.

'<user_name>'@'<host_name>'

호스트 이름에 특정 IP 주소 또는 주소 범위를 지정하거나 퍼센트 문자('%')를 사용하여 호스트 이름을 제한이 없는 상태로 유지할 수 있습니다. IP 주소로 인스턴스에 연결하는 경우 사용자의 호스트 이름에 제한이 없는 상태이더라도 클라이언트 IP 주소를 인증된 주소로 추가해야 합니다.

사용자 계정은 사용자 이름과 호스트 이름 둘 다에 의해 정의됩니다. 예를 들어 'root'@'%''root'@'localhost'와 다른 사용자 계정입니다.

기본 MySQL 사용자

MySQL 인스턴스에는 하나의 기본 사용자 계정('root'@'%')이 있습니다.

루트 사용자 계정

새 인스턴스의 루트 사용자를 구성하여 인스턴스에 액세스할 수 있습니다. 루트 사용자는 편의를 위해 모든 호스트에서 연결할 수 있도록 구성됩니다.

'root'@'%'

루트 사용자에게는 SUPERFILE 권한을 제외한 모든 권한이 부여됩니다.

root 사용자 계정에 안전한 비밀번호를 설정하세요. root 사용자는 대부분 MySQL 설치 시 생성되므로 무단 액세스의 표적이 되기 쉽습니다. 인스턴스에 대한 액세스 권한이 있는 사람 또는 프로그램은 사실상 인스턴스 및 데이터에 무제한으로 액세스할 수 있습니다. root 사용자 계정 구성에 관한 도움말은 root 사용자 계정 구성을 참조하세요.

Cloud SQL 1세대용 MySQL:

1세대 인스턴스의 경우 기본 사용자 계정으로 ''@'localhost''root'@'localhost'를 사용할 수 있습니다.

시스템 사용자

시스템 사용자에는 두 가지가 있습니다.

  • cloudsqlimport@localhost

    데이터 가져오기에 사용됩니다.

  • cloudsqlreplica@%

    복제본의 복제 사용자로 사용됩니다.

위 사용자는 삭제하거나 수정할 수 없습니다.

다른 MySQL 사용자 계정

MySQL 사용자 계정을 다른 목적으로 사용하려면 다른 MySQL 사용자 계정을 만드는 것이 좋습니다. 또는 제한된 호스트 이름의 root 계정을 만들거나 사용자 계정의 권한을 제한할 수도 있습니다.

사용자 계정 이름에 관한 자세한 내용은 MySQL 문서를 참조하세요.

MySQL 5.6 및 5.7 사용자 권한

MySQL은 사용자에게 부여하거나 제거할 수 있는 세분화된 권한을 제공합니다. 이를 통해 인스턴스에서 사용자의 작업을 제어할 수 있습니다.

Cloud SQL로 생성된 사용자에게는 root 사용자와 동일한 권한이 부여됩니다. GRANT 또는 REVOKE 문을 사용하여 이러한 사용자 권한을 변경할 수 있습니다.

mysql 클라이언트를 사용하여 사용자를 만들 때는 GRANT 문을 사용하여 사용자에게 권한을 명시적으로 부여해야 합니다.

MySQL에서 지원하는 권한에 대한 자세한 내용은 MySQL에서 제공하는 권한을 참조하세요.

MySQL 8.0 사용자 권한(cloudsqlsuperuser)

Cloud SQL용 MySQL 8.0에서 새 사용자를 만들면 사용자에게 cloudsqlsuperuser 역할이 자동으로 부여됩니다. cloudsqlsuperuser 역할은 여러 MySQL 권한이 포함된 Cloud SQL 역할입니다. 이 역할은 SUPERFILE을 제외한 모든 MySQL 정적 권한을 사용자에게 부여합니다.

cloudsqlsuperuser 역할은 다음과 같은 동적 권한만 지원합니다.

cloudsqlsuperuser 역할은 MySQL 데이터베이스에서 데이터 정의 언어(DDL) 작업을 지원하지 않습니다.

cloudsqlsuperuser 역할에 부여된 권한의 전체 목록을 보려면 mysql 클라이언트에서 SHOW GRANTS 문을 실행합니다.

SHOW GRANTS 'cloudsqlsuperuser'

다음 단계