MySQL DCL (Data Control Language) 훑어보기!

하하호호훈이·2025년 5월 8일

SQL(MySQL) MUST KNOW

목록 보기
6/23
post-thumbnail

자 일단 터미널에서 MySQL에 접속하는 방법은:

mysql -u 사용자 -p
  • -u : MySQL에 접속할 사용자 이름 지정
  • -p : 비밀번호를 입력하도록 지정

이렇게 치고 비밀번호를 입력하면 mysql>라고 나올거예요. 그러면 접속이 된거고 이후로 sql 명령어를 입력하면 된답니다!

1. 사용자 관리

1.1. 현재 등록된 사용자 목록 확인하기

mysql> USE mysql;
mysql> SELECT host, user FROM user

1.2. 새 유저 추가하기

1.2.1. 로컬에서만 접속 가능하게

mysql> CREATE USER '유저아이디'@'localhost' IDENTIFIED BY '비밀번호'

1.2.2. 모든 호스트(= 모든 IP 주소에서)에서 접속 가능하게

mysql> CREATE USER '유저아이디'@'%' IDENTIFIED BY '비밀번호'

1.3. 기존 유저 비밀번호 바꾸기

mysql> SET PASSWORD FOR '유저아이디'@'호스트' = '신규비밀번호'

1.4. 유저 삭제

mysql> DROP USER '유저아이디'@'호스트'

2. 유저 접속 권한 설정

2.1. 특정 유저의 권한 확인

mysql> SHOW GRANTS FOR '유저아이디'@'호스트'

2.2. 접속 허용 설정

2.2.1. 로컬에서만

mysql> GRANT ALL ON 데이터베이스.테이블 TO '유저아이디'@'localhost'

2.2.2. 특정 권한만

GRANT 명령어, UPDATE ON 데이터베이스.테이블 TO '유저아이디'@'호스트'

이러면 특정 데이터베이스의 특정 테이블에만 권한을 부여한다는 의미입니다.

이 다음에 변경 사항을 저장 후 적용시키려면:

mysql> FLUSH PRIVILEGES

예시
username이라는 사용자 계정을 로컬에서만 모든 데이터베이스의 모든 테이블에 대해 INSERT, UPDATE, SELECT, DELETE를 할 수 있는 권한을 부여해보자:

mysql> GRANT INSERT, UPDATE, SELECT, DELETE ON *.* TO 'username'@'localhost'
mysql> FLUSH PRIVILEGES




이렇게 DCL까지 알아보았습니다. 이제 다음 포스팅부터는 더 정교한 분석을 위해 원하는 대로 데이터를 가지고 오게 할 수 있는 문법들을 알아봅시다! DTL은 좀 더 나중에 보는거는 안비밀
그럼 👋

profile
AI, Data Science/Analysis 리뷰용가리지용 😆

0개의 댓글