MySQL 읽기 전용 사용자 생성
사용자가 데이터베이스에 대한 읽기 전용 자격 증명을 사용하여 액세스 권한을 생성해야 하는 경우가 자주 있을 수 있습니다. 사용자는 데이터베이스에 보관된 데이터를 보거나 읽을 수만 있습니다. 내용이나 설정 방식을 변경할 수 없습니다.
이 문서에서는 주로 MySQL에서 읽기 전용 사용자를 만드는 방법에 대해 설명합니다. 데이터베이스에 읽기 전용 모드로만 액세스할 수 있는 사용자를 만들어야 합니다.
MySQL에서 읽기 전용 사용자 생성
MySQL에서 읽기 전용 사용자를 생성하려면 터미널 또는 명령 프롬프트에서 다음 명령을 사용하여 MySQL 관리자로 로그인합니다.
mysql -u root -p
암호 입력 프롬프트가 나타납니다. 그런 다음 루트 계정의 비밀번호를 입력하십시오.
출력:
새 MySQL 사용자 계정 만들기
CREATE USER 'report'@'%' IDENTIFIED BY 'secret';
사용자 보고서는 표시된 것처럼 위의 명령에서 %를 사용하여 모든 호스트에서 참가할 수 있습니다. 사용자가 연결할 수 있는 호스트를 지정한 후 액세스를 제한할 수 있습니다.
이 정보가 생략된 경우 사용자는 동일한 컴퓨터에서만 참가할 수 있습니다.
출력:
SELECT
명령에 대한 사용자 액세스 권한 부여
GRANT SELECT ON database_name.* TO 'report'@'%';
부여하는 이러한 권한과 GRANT
를 사용하려면 GRANT OPTION
권한을 모두 소유해야 합니다. (또는 MySQL 시스템 스키마 부여 테이블에 대한 UPDATE
권한이 있는 경우 모든 계정에 모든 권한을 부여할 수 있습니다.)
이 명령을 사용하면 사용자에게 로컬 호스트의 데이터베이스에 대한 읽기 전용 액세스 권한만 부여됩니다. 수집기가 설치될 호스트의 호스트 이름 또는 IP 주소를 알 수 있는 경우 다음 명령을 입력하십시오.
출력:
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 명령줄에서 여러 명령을 사용하여 데이터베이스의 읽기 전용 데이터에 액세스할 사용자를 만들 수 있습니다.
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.