MySQL

25. MySQL DB계정 생성, 권한 확인, 부여, 회수 쿼리

drizzle0925 2021. 7. 15. 09:44
728x90

MySQL, MariaDB에서 사용할 수 있는 DB 계정 생성, 권한 확인, 부여, 회수 쿼리에 대해서 알아봅시다.

우선, root 권한으로 MySQL을 실행합니다.

 

 

mysql DB를 사용한다고 선언

use mysql;

 

 

계정 목록을 보는 쿼리

SELECT host, user FROM user;

 

 

계정 생성 쿼리

'user'에는 생성할 계정이름을 입력하고 'password'에서는 계정의 비밀번호를 입력합니다.

# localhost에서만 접속 허용
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';

# 어디서든 접속 허용
CREATE USER 'user'@'%' IDENTIFIED BY 'password';

 

 

유저별 권한 부여

# 어디서든 DB사용에 대한 모든 권한 허용
GRANT ALL PRIVILEGES ON db_name.* to 'user'@'%';

# localhost에서만 해당 DB의 모든 권한 허용
GRANT ALL PRIVILEGES ON [database_name].* TO 'user'@'localhost';

# localhost에서만 해당 DB의 테이블에 대한 모든 권한 허용
GRANT ALL PRIVILEGES ON [database_name].[table_name] TO 'user'@'localhost';


# 해당 테이블의 조회만 허용
GRANT SELECT ON [database].[table_name] TO [user];

# 해당 테이블의 삽입만 허용
GRANT INSERT ON [database].[table_name] TO [user];

# 해당 테이블의 삭제만 허용
GRANT DELETE ON [database].[table_name] TO [user];

# 해당 테이블의 수정만 허용
GRANT UPDATE ON [database].[table_name] TO [user];

 

 

유저별 권한 확인

'접속위치'에는 위에서 설정한 localhost, %과 같은 접속위치정보를 입력합니다.

# 접속위치는 localhost, % 등 접속설정을 해준 위치를 말한다.
show grants for 'user'@'접속위치';

 

 

유저별 권한 회수

revoke all on db_name.table_name from 'user'@'접속위치';

REVOKE SELECT ON [table_name] FROM [user];
REVOKE INSERT ON [table_name] FROM [user];
REVOKE DELETE ON [table_name] FROM [user];
REVOKE UPDATE ON [table_name] FROM [user];

 

계정 암호 변경

ALTER USER 'user-name'@'localhost' IDENTIFIED BY 'NEW_USER_PASSWORD';
FLUSH PRIVILEGES;

 

계정 삭제

drop user 'user'@'접속위치';
728x90