Database- 데이터베이스 (2일차: MySQL 사용자 생성 및 권한 부여)
과제 1: MySQL 사용자 생성 및 권한 부여
이번 과제의 목표는 MySQL에서 새로운 사용자를 생성하고, 권한을 부여하는 방법을 학습하는 것입니다. MySQL에서는 사용자를 생성하고 그 사용자가 어떤 작업을 할 수 있는지 정의할 수 있습니다. 이를 통해 데이터베이스의 보안을 관리하고, 각 사용자에게 필요한 권한만을 부여할 수 있습니다.
1️⃣ MySQL에 root 사용자로 로그인
- 먼저, MySQL의 root 계정으로 로그인해야 합니다. MySQL이 설치된 서버에서 터미널을 열고 다음 명령어를 입력합니다:
- bash
mysql -u root -p
2. -u 옵션은 사용자 이름을 지정하는 것이며, -p 옵션은 비밀번호를 묻도록 합니다. 이 명령어를 입력하면 비밀번호를 입 력하라는 메시지가 나타나므로 root 계정의 비밀번호를 입력합니다.
2️⃣ 새로운 MySQL 사용자 생성
새로운 사용자를 생성하려면 CREATE USER 명령어를 사용합니다. 예시로, **fishbread_user**라는 사용자를 생성해보겠습니다. 이 사용자는 **localhost**에서만 로그인할 수 있습니다.
CREATE USER 'fishbread_user'@'localhost' IDENTIFIED BY 'password';
- 'fishbread_user'는 새 사용자의 이름입니다.
- 'localhost'는 사용자가 localhost에서만 접속할 수 있도록 제한하는 설정입니다. 만약 원격에서도 접속을 허용하고 싶다면 '%'를 사용하여 모든 IP에서 접속 가능하게 할 수 있습니다.
- 'password'는 사용자의 비밀번호입니다.
3️⃣ 사용자에게 권한 부여
사용자가 생성된 후에는 특정 권한을 부여해야 합니다. 모든 권한을 부여하려면 GRANT 명령어를 사용합니다. 예시로 모든 데이터베이스와 테이블에 대해 모든 권한을 부여하는 방법은 다음과 같습니다:
GRANT ALL PRIVILEGES ON *.* TO 'fishbread_user'@'localhost';
- *.*는 모든 데이터베이스와 테이블에 대한 권한을 의미합니다. 특정 데이터베이스만 권한을 주고 싶다면 *.* 대신 database_name.* 형식으로 사용할 수 있습니다.
- 'fishbread_user'@'localhost'는 권한을 부여할 대상 사용자입니다.
권한을 부여한 후에는 FLUSH PRIVILEGES; 명령어를 실행하여 변경사항을 적용해야 합니다:
FLUSH PRIVILEGES;
4️⃣ 부여된 권한 확인
새로 생성한 사용자에게 어떤 권한이 부여되었는지 확인하려면 SHOW GRANTS 명령어를 사용합니다:
SHOW GRANTS FOR 'fishbread_user'@'localhost';
이 명령어를 입력하면 fishbread_user 사용자에게 부여된 권한 목록이 표시됩니다.
5️⃣ 현재 로그인한 사용자의 권한 확인
현재 로그인한 사용자의 권한을 확인하려면 SHOW GRANTS 명령어를 사용하여 확인할 수 있습니다:
SHOW GRANTS;
이 명령어는 현재 로그인한 사용자의 권한을 표시합니다.
요약
- MySQL에 root 사용자로 로그인하여 CREATE USER 명령어로 새로운 사용자 생성.
- GRANT 명령어를 사용하여 해당 사용자에게 필요한 권한을 부여.
- FLUSH PRIVILEGES 명령어로 권한 변경사항 적용.
- SHOW GRANTS 명령어로 부여된 권한을 확인.