MySQL 사용자 권한 관리

MySQLBeginner
지금 연습하기

소개

이 프로젝트에서는 MySQL 데이터베이스에서 사용자 권한을 관리하는 방법을 배우게 됩니다. 구체적으로, "Rong"이라는 새로운 로컬 사용자를 생성하고 performance_schema 데이터베이스에 대한 접근 권한을 부여합니다.

👀 미리보기

MariaDB [(none)]> SHOW GRANTS FOR Rong@localhost;
+-------------------------------------------------------------------------------------------------------------+
| Grants for Rong@localhost                                                                                   |
+-------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `Rong`@`localhost` IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT SELECT ON `performance_schema`.* TO `Rong`@`localhost`                                                |
+-------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)

🎯 과제

이 프로젝트에서 다음을 배우게 됩니다:

  • MySQL 서버를 시작하고 MySQL 터미널에 로그인하는 방법
  • 특정 비밀번호를 가진 새로운 로컬 사용자를 생성하는 방법
  • 사용자에게 특정 데이터베이스 및 해당 테이블에 대한 접근 권한을 부여하는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다:

  • MySQL 데이터베이스에서 사용자 계정 및 권한을 관리할 수 있습니다.
  • 사용자에게 데이터베이스 접근 권한을 부여하고 취소하는 과정을 이해할 수 있습니다.
  • 이러한 기술을 활용하여 자체 MySQL 기반 애플리케이션에서 사용자 권한을 설정할 수 있습니다.

MySQL 시작 및 로그인

이 단계에서는 MySQL 서버를 시작하고 MySQL 터미널에 로그인하는 방법을 배우게 됩니다.

  1. 시스템에서 터미널을 엽니다.

  2. 다음 명령을 실행하여 MySQL 서비스를 시작합니다:

    sudo /etc/init.d/mysql start
  3. MySQL 터미널에 로그인합니다:

    mysql -uroot

    이제 MySQL 터미널에 접속하여 MySQL 명령을 입력할 수 있습니다.

✨ 솔루션 확인 및 연습

로컬 사용자 생성

이 단계에서는 "123456" 비밀번호를 가진 "Rong"이라는 새로운 로컬 사용자를 생성하는 방법을 배우게 됩니다.

  1. ~/project 디렉토리에 manUser.sql 파일을 생성합니다.

  2. 다음 코드를 파일에 추가하여 사용자를 생성합니다:

    CREATE USER 'Rong'@'localhost' IDENTIFIED BY '123456';

    이 코드는 "123456" 비밀번호를 가진 "Rong"이라는 새로운 사용자를 생성하고, 사용자가 로컬 머신 (localhost) 에서 로그인할 수 있도록 허용합니다.

✨ 솔루션 확인 및 연습

Performance_schema 접근 권한 부여

이 단계에서는 "Rong" 사용자에게 performance_schema 데이터베이스에 대한 접근 권한을 부여하는 방법을 배우게 됩니다.

  1. manUser.sql 파일을 엽니다.

  2. 이전 단계에서 추가한 코드 뒤에 필요한 권한을 부여합니다:

    GRANT SELECT ON performance_schema.* TO 'Rong'@'localhost';

    이 코드는 "Rong" 사용자에게 performance_schema 데이터베이스의 모든 테이블에 대한 SELECT 권한을 부여합니다.

  3. 마지막으로, 권한을 플러시 (flush) 하고 변경 사항을 적용합니다:

    FLUSH PRIVILEGES;
✨ 솔루션 확인 및 연습

솔루션 검증

  1. MySQL 프롬프트에서 SQL 스크립트를 실행합니다:
SOURCE /home/labex/project/manUser.sql;
  1. MySQL 터미널에서 다음 명령을 실행하여 결과를 확인합니다:
SHOW GRANTS FOR Rong@localhost;

이 명령은 performance_schema 데이터베이스에 대한 SELECT 권한을 포함하여 "Rong" 사용자의 권한을 표시해야 합니다.

MariaDB [(none)]> SHOW GRANTS FOR Rong@localhost;
+-------------------------------------------------------------------------------------------------------------+
| Grants for Rong@localhost                                                                                   |
+-------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `Rong`@`localhost` IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT SELECT ON `performance_schema`.* TO `Rong`@`localhost`                                                |
+-------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)
✨ 솔루션 확인 및 연습

요약

축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.