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
'MySQL' 카테고리의 다른 글
27. MySQL int(11) 그리고 ZEROFILL (0) | 2021.07.19 |
---|---|
26. MySQL 테이블 생성 쿼리 보기 (0) | 2021.07.19 |
24. MySQL 컬럼 생성시 unsignde 선언의 의미 (0) | 2021.03.26 |
23. MySQL 쿼리모음 (0) | 2021.03.23 |
22. MySQL 인덱스(INDEX) 생성, 조회 (0) | 2021.03.22 |