[MySQL] 사용자 권한 설정

Hunie_07·4일 전

SQL

목록 보기
2/8
post-thumbnail

📌 MySQL 사용자 권한 설정 (마법사 활용)

1️⃣ 사용자 계정 등록

1. 좌측 Administration - MANAGEMENT - Uses and Privileges

2. Add Account

  • Login Name 지정
  • Password 설정, Confirm Password: 비밀번호 재입력

3. Apply

  • 좌측과 같은 오류가 발생할 것인데, 이때는 상단 메뉴의 Account Limits 에서 Max. Queries Max. Updates Max. Connections Concurrent Connections 에 임의의 수치 1000 1000 100 100 을 입력하고 Apply 한다.

2️⃣ 스키마 권한 설정

1. 상단 Schema Privileges - Add Entry...

2. 스키마 선택

  • All Schema(%) 로 생성되어있는 모든 스키마를 선택하거나 Selected schema 를 통해 특정 스키마를 선택하여 각각의 스키마의 권한을 달리 설정할 수도 있다.

3. 스키마 권한 선택

  • 하단의 여러 명령어를 선택하여 생성한 User 에게 부여할 권한을 선택한다. (전체 권한은 Select "ALL")
  • 우측과 같은 에러가 발생한 경우 무시해도 괜찮다.

3️⃣ 특정 유저 전용 SQL Server 생성

  • 기본적으로 root 라는 유저로 사용하기에 많은 스키마들이 생성되어있는데, 이 중 앞서 생성한 유저 전용 SQL Server를 생성할 수 있다.
  • 이는 해당 유저에게 부여한 스키마만 조회할 수 있고, 부여한 권한만 사용 가능하다.

1. MySQL Workbench 홈 하단의 MySQL Connections 우측 +

2. 서버 설정

  • Connection Name : 서버의 이름으로, 여기서는 연습용 서버이기에 for_practice 로 지정한다.
  • Username : 유저 이름으로, 디폴트값은 root 로, 여기서는 앞서 생성했던 practiceuser 를 사용한다.

3. 서버 연결 테스트

  • 하단의 Test Connection 클릭하면 root localhost 서버 들어갈 때처럼 Password 입력창이 나오며 로그인을 시도한다.
  • Continue Anyway 클릭, OK 클릭

  • 연결 테스트 종료 후 최종적으로 우측 하단의 OK 를 누르면 서버가 생성된다.

  • for_practice 라는 이름의 practiceuser 전용 서버가 생성되었다.


  • 기존과 다르게 권한을 부여한 shopdb 스키마만 조회되는 모습이다.

📌 MySQL 사용자 권한 설정 (쿼리문 활용)

  • 쿼리문을 실행하여 동일하게 사용자 생성 및 권한 설정을 수행할 수 있다.

1️⃣ 사용자 계정 등록

CREATE USER '사용자아이디'@'호스트' IDENTIFIED BY '비밀번호';

  • % : 모든 IP에서 접속 허용
  • localhost : 내부망에서만 허용(보안)
CREATE USER 'practiceuser'@'%' IDENTIFIED BY '12341234';

2️⃣ 권한 부여

GRANT 권한목록 ON 데이터베이스 TO '사용자계정'@'호스트';

  • 권한목록 : ALL PRIVILEGES, SELECT, INSERT, DELETE, UPDATE, CREATE, DROP, ALTER, ...

1) 모든 권한 부여

GRANT ALL PRIVILEGES ON shopdb.* TO 'practiceuser'@'%';
# shopdb.* : shopdb 의 모든 데이터

2) 일부 권한 선택 부여

GRANT SELECT, DELETE, INSERT UPDATE ON testdb3.* TO 'practiceuser'@'%';

3) 권한 부여 기준

  • 개발환경 : ALL PRIVILEGES
  • 운영 : SELECT, DELETE, INSERT, UPDATE
  • 배포/관리 : CREATE, ALTER, DROP 별도 계정

3️⃣ 권한 반영

FLUSH PRIVILEGES;

4️⃣ 권한 확인

SHOW GRANTS FOR '사용자아이디'@'호스트';

SHOW GRANTS FOR 'practiceuser'@'%';

5️⃣ 사용자 목록 확인

SELECT * FROM mysql.USER;
# 좌측 Administration 의 Users and Privileges 에 등록되어 있는 사용자 계정 정보 조회

6️⃣ 사용자 계정 수 조회

SELECT count(*) FROM mysql.USER;

7️⃣ 사용자 계정 삭제

DROP USER 사용자계정정보

DROP USER IF EXISTS 'practiceuser'@'%';
  • IF EXISTS 를 통해 에러를 방지한다.

0개의 댓글