[Linux][CentOS][7.x] MySQL 5.6 계정 생성 및 권한 관리
MySQL 을 관리하면서 가장 기본으로 필요한 것은 계정 생성 및 권한을 관리하는 것입니다.
사용자 계정과 관련된 구문은 다음과 같습니다.
ALTER |
사용자 정보를 변경 ex) ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE; |
CREATE |
사용자 계정 생성 ex) CREATE USER 'testuser'@'%' IDENTIFIED BY 'password'; |
DROP |
사용자 계정 삭제 ex) DROP USER 'testuser'; |
GRANT |
사용자 계정에 권한을 부여 ex) GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost' IDENTIFIED BY'password'; |
RENAME |
사용자 계정을 변경 ex) RENAME USER 'testuser'@'localhost' TO 'testuser2'@'127.0.0.1'; |
REVOKE |
사용자 계정의 권한을 제거 ex) REVOKE ALL PRIVILEGES ON testdb.* FROM 'testuser'@'localhost'; |
SET PASSWORD |
사용자 계정의 비밀번호 변경 ex) SET PASSWORD FOR 'testuser'@'localhost' = password('new_password'); |
사용자 계정을 새로 생성하여 권한을 바로 부여하는 경우에는 CREATE 과정을 생략하고 바로 GRANT 구문만 사용해도 됩니다.
반대로 계정을 삭제하는 경우에는 권한을 제거하지 않고 바로 DROP 하면 계정이 삭제 됩니다.
사용자의 권한을 확인하기 위해서는 다음의 구문을 사용합니다.
mysql> SHOW GRANTS FOR 'testuser'@'localhost'; |
사용자가 가질수 있는 권한은 종류가 매우 많습니다.
많이 쓰이는 권한은 다음과 같습니다.
ALL [PRIVILEGES] : 모든 권한
CREATE : 데이터베이스 혹은 테이블 생성 권한
DELETE : DELETE 구문을 사용할 수 있는 권한
DROP : 데이터베이스, 테이블 혹은 뷰를 삭제할 수 있는 권한
INSERT : INSERT 구문 사용 권한
LOCK TABLES : SELECT 구문시 테이블에 락을 걸수 있는 권한
SELECT : SELECT 구문 사용 권한
SUPER: admin 권한
UPDATE : UPDATE 구문 사용 권한