📌 사용자관리
✅ DCL(Data Control Language) - GRANT(권한 부여), REVOKE(권한 회수)
- 신규 사용자 생성
- CREATE USER 'testuser'@'localhost' IDENTIFIED BY ‘testpw’;
- 어떤 곳에서도 원격접속을 가능하도록 하려면 localhost대신 % 기호 사용
- CREATE USER 'testuser'@'localhost' IDENTIFIED BY ‘testpw’;
- 사용자 삭제
- DROP USER 'testuser'@'localhost';
- 사용자 목록 조회
- SELECT User, Host FROM mysql.user;
- 특정DB의 특정테이블에 특정권한 부여
- GRANT SELECT ON board.author TO ‘testuser'@'localhost';
- 특정DB의 특정테이블에 특정권한 회수
- REVOKE SELECT ON board.author FROM ‘testuser'@'localhost';
- 권한 변경사항 적용 ⭐
- FLUSH PRIVILEGES;
- 특정 사용자 권한 조회
- SHOW GRANTS FOR 'testuser'@'localhost';
💻 사용자관리 실습
1. user 생성
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'testpw';
2. user 권한 조회
SHOW GRANTS FOR 'testuser'@'localhost';
3. user에 INSERT 권한 부여
GRANT SELECT ON board.author TO 'testuser'@'localhost';
4. 권한 변경사항 적용
FLUSH PRIVILEGES;
5. user 권한 조회
SHOW GRANTS FOR 'testuser'@'localhost';
6. testuser생성
이름은 SELECT 권한을 준 testuser
password는 testpw
7. testuser에서 SELECT 권한을 부여받은 author 테이블 조회
select * from author;
8. testuser에서 SELECT 권한을 부여받지 않은 post 테이블 조회
select * from post;
Error Code: 1142. SELECT command denied to user 'testuser'@'localhost' for table `board`.`post` 0.000 sec
9. testuser 삭제 후 원격접속을 가능하도록 % 기호써서 다시 생성
DROP USER 'testuser'@'localhost';
CREATE USER 'testuser'@'%' IDENTIFIED BY 'testpw';
10. testuser에서 원격 접속할 경우 testuser의 Connection의 Hostname은 원격접속지의 주소로 설정
IP주소(xx.xxx.xx.xx) 혹은 도메인주소(xxxxxx.com)을 입력하면 됨
11. testuser 재삭제
DROP USER 'testuser'@'%';
'Back-End 공부 > Database' 카테고리의 다른 글
[Database] 데이터 모델링(개념적, 논리적, 물리적) (1) | 2023.11.24 |
---|---|
[Database] DB Dump로 백업, 복구하기 (0) | 2023.11.22 |
[Database] DB 동시성 이슈(Dirty Read, Non-Repeatable Read, Phantom Read) (2) | 2023.11.22 |
[Database] 트랜잭션 격리 수준(isolation level) 문제점과 해결방법 (0) | 2023.11.22 |
[Database] GROUP BY절, HAVING절 (1) | 2023.11.22 |