GRANT 권한 ON database.table TO `ID`@`HOST` IDENTIFED BY 'password'
ID@123.100.100.100 // IP가 123.100.100.100인 머신에서 접속한 ID에게만 권한 부여
ID@% // IP 관계 없이 접속한 ID에게 권한 부여
GRANT ON class.student; // class 데이터베이스의 student 테이블 제어
GRANT ON class.*; // class 데이터베이스의 모든 테이블 제어
GRANT ON *.*; // 모든 데이터 베이스와 테이블 제어
권한 | |
---|---|
개발자 | SELECT, INSERT, UPDATE, DELETE |
설계자 | ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT |
DBA | ALL |
GRANT DELETE, INSERT,SELECT, UPDATE ON class.* TO `dev`@`%` IDENTIFIED BY '1234';
// ID가 dev, PASSWORD가 1234인 사용자에게 class 데이터베이스의 개발자 권한 부여
GRANT ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, UPDATE ON *.* TO `archi`100.100.100.100` IDENTIFIED BY '1234';
// ID가 archi, PASSWORD가 1234인 클라이언트 IP가 100.100.100.100에서 사용자에게 모든 데이터베이스의 설계자 권한 부여
SHOW GRANTS [FOR USER] // USER 미 입력 시 자기 자신의 권한 확인
SHOW GRANTS FOR dev; dev 사용자의 권한 열람
REVOKE 권한 ON DATABASE.TABLE FROM [USER]
REVOKE DELETE ON class.* FROM dev; // dev 사용자의 class 데이터베이스의 모든 테이블의 DELETE 권한 제거
DROP USER user [, user]...
DROP USER `dev`@`%`;
Privilege | 권한이 적용되는 대상 | 설명 |
---|---|---|
CREATE | databases, tables, or indexes | 데이터베이스, 테이블 생성 |
DROP | databases, tables, or views | 데이터베이스,테이블 삭제 |
GRANT OPTION | databases, tables, or stored routines | 사용자들의 권한을 부여하거나 제거 |
LOCK TABLES | databases | 테이블 잠그기 |
ALTER | tables | 테이블의 구조를 변경 |
DELETE | tables | 테이블의 행을 삭제 |
INDEX | tables | 인덱스를 생성하거나 삭제 |
INSERT | tables or columns | 행 추가 |
SELECT | tables or columns | 행 조회 |
UPDATE | tables or columns | 행 변경 |
CREATE TEMPORARY TABLES | tables | 임시 테이블의 생성 |
CREATE VIEW | views | 뷰의 생성 |
SHOW VIEW | views | SHOW CREATE VIEW |
ALTER ROUTINE | stored routines | 프로시저, 함수의 변경 삭제 |
CREATE ROUTINE | stored routines | 프로시저, 함수의 생성 |
EXECUTE | stored routines | 프로시저, 함수의 실행 |
FILE | file access on server host | - LOAD DATA INFILE - SELECT..INTO OUTFILE - LOAD_FILE() |
CREATE USER | server administration | - CREATE USER - DROP USER - RENAME USER - REVOKE ALL PRIVILEGES |
PROCESS | server administration | 타인의 thread 실행 상태를 열람 - SHOW PROCESSLIST - mysqladmin processlist 자신의 thread는 언제든지 열람가능 |
RELOAD | server administration | - flush-hosts - flush-logs - flush-privileges - flush-status - flush-tables - flush-threads - refresh - reload |
REPLICATION CLIENT | server administration | - SHOW MASTER STATUS - SHOW SLAVE STATUS |
REPLICATION SLAVE | server administration | 리플리케이션에 참가하고 있는 슬레이브 서버들이 마스터 서버(권한을 부여하는 서버) 접속해서 마스터의 변경사항을 동기화 |
SHOW DATABASES | server administration | - SHOW DATABASES |
SHUTDOWN | server administration | - mysqladmin shutdown |
SUPER | server administration | 다른 클라이언트를 종료하거나, 서버의 동작 변경 - CHANGE MASTER TO - KILL - mysqladmin kill - PURGE BINARY LOGS - SET GLOBAL - 기타등등 |
ALL [PRIVILEGES] | server administration | 모든 권한 허용 |