MySQL 읽기 전용 사용자 생성

Migel Hewage Nimesha 2024년2월15일
  1. MySQL에서 읽기 전용 사용자 생성
  2. 새 MySQL 사용자 계정 만들기
  3. SELECT 명령에 대한 사용자 액세스 권한 부여
  4. 결론
MySQL 읽기 전용 사용자 생성

사용자가 데이터베이스에 대한 읽기 전용 자격 증명을 사용하여 액세스 권한을 생성해야 하는 경우가 자주 있을 수 있습니다. 사용자는 데이터베이스에 보관된 데이터를 보거나 읽을 수만 있습니다. 내용이나 설정 방식을 변경할 수 없습니다.

이 문서에서는 주로 MySQL에서 읽기 전용 사용자를 만드는 방법에 대해 설명합니다. 데이터베이스에 읽기 전용 모드로만 액세스할 수 있는 사용자를 만들어야 합니다.

MySQL에서 읽기 전용 사용자 생성

MySQL에서 읽기 전용 사용자를 생성하려면 터미널 또는 명령 프롬프트에서 다음 명령을 사용하여 MySQL 관리자로 로그인합니다.

mysql -u root -p

암호 입력 프롬프트가 나타납니다. 그런 다음 루트 계정의 비밀번호를 입력하십시오.

출력:

루트 계정 비밀번호 입력

새 MySQL 사용자 계정 만들기

CREATE USER 'report'@'%' IDENTIFIED BY 'secret';

사용자 보고서는 표시된 것처럼 위의 명령에서 %를 사용하여 모든 호스트에서 참가할 수 있습니다. 사용자가 연결할 수 있는 호스트를 지정한 후 액세스를 제한할 수 있습니다.

이 정보가 생략된 경우 사용자는 동일한 컴퓨터에서만 참가할 수 있습니다.

출력:

새 MySQL 사용자 계정 만들기

SELECT 명령에 대한 사용자 액세스 권한 부여

GRANT SELECT ON database_name.* TO 'report'@'%';

부여하는 이러한 권한과 GRANT를 사용하려면 GRANT OPTION 권한을 모두 소유해야 합니다. (또는 MySQL 시스템 스키마 부여 테이블에 대한 UPDATE 권한이 있는 경우 모든 계정에 모든 권한을 부여할 수 있습니다.)

이 명령을 사용하면 사용자에게 로컬 호스트의 데이터베이스에 대한 읽기 전용 액세스 권한만 부여됩니다. 수집기가 설치될 호스트의 호스트 이름 또는 IP 주소를 알 수 있는 경우 다음 명령을 입력하십시오.

출력:

Grant the User Access

GRANT SELECT ON database_name.* TO 'report'@'host_name or IP_address';

권한 조정을 저장하고 적용하려면 다음 명령을 실행하십시오.

FLUSH PRIVILEGES;
SHOW GRANTS FOR 'report'@'host_name or IP_address';

끝에 quite라는 단어를 입력하고 확인을 위해 사용자의 승인된 권한을 표시합니다.

MySQL 8은 이전 버전과 다르기 때문에 지침을 따라야 합니다. 하지만 순차적으로 두 단계로 수행해야 합니다.

CREATE USER 'readonly_user'@'localhost' IDENTIFIED BY 'some_strong_password';
GRANT SELECT, SHOW VIEW ON *.* TO 'readonly_user'@'localhost';
FLUSH PRIVILEGES;

MySQL 개발자는 추가 기능을 원하며 MySQL 8.0은 SQL, JSON, 정규식 및 GIS 분야에서 많은 기능을 제공합니다.

UTF8MB4는 개발자도 Emojis를 저장할 수 있기를 원하기 때문에 버전 8.0에서 기본 문자 세트로 사용되었습니다.

마지막으로 향상된 IPv6 및 UUID 기능과 BINARY 데이터 유형에 대한 비트 연산을 포함하여 데이터 유형이 향상되었습니다.

출력:

사용자의 승인된 권한 표시

다음은 추가 읽기 전용 권한입니다.

읽기 전용 권한 설명
쇼 보기 보기 스키마를 표시하도록 허용합니다.
데이터베이스 보기 데이터베이스를 표시하도록 허용합니다.
복제 클라이언트 복제/슬레이브 상태를 확인할 수 있습니다. 하지만 모든 DB를 허용해야 합니다.
PROCESS 실행 중인 프로세스를 확인할 수 있습니다. 모든 DB에서만 작동합니다.

다음은 사용자에게 부여할 수 있는 몇 가지 권한입니다.

권한 설명
ALL 이렇게 하면 MySQL 사용자에게 모든 액세스가 허용됩니다.
모든 권한 MySQL 사용자는 완전한 액세스 권한을 갖습니다.
CREATE 새 데이터베이스 또는 테이블을 개발할 수 있습니다.
DROP 데이터베이스 또는 테이블을 제거할 수 있습니다.
DELETE 테이블에서 행을 제거할 수 있습니다.
INSERT 테이블에 행을 삽입할 수 있습니다.
SELECT SELECT 명령을 사용하여 데이터베이스를 읽을 수 있습니다.
쇼 보기 보기 스키마를 표시할 수 있습니다.
복제 클라이언트 복제/슬레이브 상태를 확인할 수 있지만 모든 DB를 허용해야 합니다.
PROCESS 실행 중인 프로세스를 확인할 수 있습니다. 모든 DB에서만 작동합니다.
UPDATE 테이블 행을 업데이트할 수 있습니다.
그랜트 옵션 다른 사용자 권한을 부여하거나 제거할 수 있습니다.

아래 프레임워크를 사용하여 특정 사용자에게 권한을 제공하십시오.

GRANT [type of permission list separated by a comma] ON [database name].[table name] TO [username]@'[hostname]’;

결론

이 기사 전반에 걸쳐 MySQL에서 읽기 전용 사용자 생성에 대해 논의했습니다. 이를 사용하여 사용자는 읽기 전용으로만 데이터베이스에 액세스하고 로컬 호스트에서만 액세스할 수 있습니다.

암호는 항상 읽기 전용 사용자를 식별합니다. 앞에서 언급했듯이 MySQL 명령줄에서 여러 명령을 사용하여 데이터베이스의 읽기 전용 데이터에 액세스할 사용자를 만들 수 있습니다.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.