반응형
이 글은 MySQL의 유저(User) 조회/생성/삭제, 권한 확인/부여/삭제를 총정리해서 담고 있습니다.
MySQL 유저(User)
MySQL의 유저는 두 가지로 나뉜다.
- 현 PC에서만 접속 가능한 유저(local host)
- 외부에서 접속 가능한 유저(%). 즉, 모든 IP에서 접근 가능한 유저
MySQL 유저(User) 조회, 생성, 삭제
MySQL 유저(User) 조회
MySQL 터미널에서 유저 조회를 해보자.
이때 유저 정보는 MySQL에서 관리하므로, USE mysql로 이동한다.
USE mysql;
SELECT host
, user
FROM user;
아래는 mysql에서 관리하는 유저 정보이다.
MySQL 유저(USER) 생성
- 현 PC에서만 접속 가능 유저 생성(local host)
- CREATE USER: 유저 생성 명령
- identified by: 접속 비밀번호 설정
CREATE USER '생성하려는 유저명'@'localhost' identified by '설정할 비밀번호';
- 외부에서 접속 가능 유저 생성(%)
- local host와 달리, 외부 접속 가능 유저는 '%'를 입력한다.
CREATE USER '생성하려는 유저명'@'%' identified by '설정할 비밀번호';
이때 아래처럼, 유저 종류(host)가 다르다면 유저명(user)은 같을 수 있다.
host | user |
localhost | helloworld |
% | helloworld |
MySQL 유저(User) 삭제
- DROP USER: 생성했던 유저 삭제
- 유저 종류는 다르지만, 유저명이 같을 경우 유저 종류 구분해서 삭제해야 함
DROP USER '유저명'@'localhost' # 현 PC에서만 접속 가능 유저 삭제
DROP USER '유저명'@'%' # 외부에서 접속 가능 유저 삭제
MySQL 유저(User) 권한 확인, 부여, 삭제
MySQL 유저(User) 권한 확인
- SHOW GRANTS FOR: 유저별 권한 확인
# @뒤에 'localhost' | '%' 선택 입력
SHOW GRANTS FOR '유저명'@'localhost';
# 현재 접속한 유저의 권한 확인
SHOW GRANTS FOR current_user;
좌측은 막 생성한 localhost인 helloworld의 권한 목록이며, 기본 화면이다.
우측은 현재 접속한 유저의 권한 목록이다, 이때 root로 접속했기에 root@localhost로 보인다.
MySQL 유저(User) 권한 부여
- GRANT ALL ON ~ TO: 특정 데이터베이스의 모든 권한을 유저에게 부여
- GRANT 권한 ON ~ TO: 특정 데이터베이스의 특정 권한을 유저에게 부여
- GRANT와 ON 사이에 원하는 특정 권한을 입력하면 된다
- SELECT, INSERT, UPDATE, DELETE, DROP, ALTER 등.. 추가적인 내용은 MySQL에서 확인할 수 있다.
- 데이터베이스명.* 에서 .*는 특정 DB의 모든 테이블에 대한 권한을 유저에게 부여한다는 의미
- *.*는 모든 DB의 모든 테이블에 대한 권한을 유저에게 부여한다는 의미
# 특정 데이터베이스의 모든 테이블
GRANT ALL ON 데이터베이스명.* TO '유저명'@'localhost';
# 모든 데이터베이스의 모든 테이블
GRANT ALL ON *.* TO '유저명'@'localhost';
아래는 유저helloworld에게 데이터베이스testdb의 모든 테이블에 대한 권한을 부여한 후의 권한 확인 목록이다.
MySQL 유저(User) 권한 삭제
- REVOKE ALL ON ~ FROM: 유저에게 부여된 특정 데이터베이스의 모든 권한 삭제
- REVOKE 권한 ON ~ FROM: 유저에게 부여된 특정 데이터베이스의 특정 권한 삭제
# 특정 데이터베이스의 모든 권한 삭제
REVOKE ALL ON 데이터베이스명.* FROM '유저명'@'localhost';
# 특정 데이터베이스의 특정 권한 삭제
REVOKE 권한 ON 데이터베이스명.* FROM '유저명'@'localhost';
아래는 유저helloworld에게 데이터베이스testdb의 모든 테이블에 대한 권한을 삭제한 후의 권한 확인 목록이다.
위와 달리, GRANT ALL PRIVILEGES ON ~ 목록이 사라졌다.
MySQL 변경사항 안보일 때
- FLUSH PRIVILEGES: 새로고침, 변경사항 안 보일 때 사용
FLUSH PRIVILEGES;
반응형
'SQL > MySQL' 카테고리의 다른 글
MySQL 윈도우 "mysql은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다." 쉬운 해결 방법 (0) | 2024.03.20 |
---|---|
MySQL과 AWS RDS 가입부터 접속까지 기본 정리(접속편) (0) | 2024.03.18 |
MySQL과 AWS RDS 가입부터 접속까지 기본 정리(생성과 외부 접속 설정편) (2) | 2024.03.14 |
MySQL과 AWS RDS 가입부터 접속까지 기본 정리(가입편) (0) | 2024.03.12 |
MySQL 데이터베이스 생성과 UTF8MB4 (0) | 2024.03.12 |