권한
사용자에 따라서 접근할 수 있는 데이터와 사용할 수 있는 기능을 제한
권한을 주는 사용자는 DB생성자만이 가능하다.
* from 생활코딩(https://opentutorials.org/course/195/1406)
문법
GRANT 권한 ON 데이터베이스.테이블 TO `아이디`@`호스트` IDENTIFIED BY `비밀번호`
호스트
ip를 의미한다. 특정 ip를 사용하지 않으려면 `%`를 사용한다.
데이터베이스.테이블
*를 사용하면 모든 제어 대상으로 함.
ex) DB_A.tableA -> 데이터베이스 DB_A의 테이블 tableA만 제어 가능
DB_A.* -> 데이터베이스 DB_A의 모든 테이블 제어 가능
*.* -> 모든 데이터베이스의 모든 테이블 제어 가능
권한
Privilege | 권한이 적용되는 대상(context) | 설명 |
---|---|---|
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 |
|
CREATE USER | server administration |
|
PROCESS | server administration | 타인의 thread 실행 상태를 열람
자신의 thread는 언제든지 열람가능
|
RELOAD | server administration |
|
REPLICATION CLIENT | server administration |
|
REPLICATION SLAVE | server administration | 리플리케이션에 참가하고 있는 슬레이브 서버들이 마스터 서버(권한을 부여하는 서버) 접속해서 마스터의 변경사항을 동기화 |
SHOW DATABASES | server administration |
|
SHUTDOWN | server administration |
|
SUPER | server administration | 다른 클라이언트를 종료하거나, 서버의 동작 변경
|
ALL [PRIVILEGES] | server administration | 모든 권한 허용 |
권한 살펴보기
자신의 권한이나, 특정 사용자의 권한을 열람.
SHOW GRANTS (FOR 사용자) - for를 생략하면 자신의 권한을 본다.
권한 제거하기
사용자의 권한을 제거
REVOKE 권한 ON 데이터베이스.테이블 FROM 사용자
권한 삭제하기
사용자를 삭제
DROP USER user[, uer]...
댓글
댓글 쓰기