우당탕탕 늑개 Database #9 - 사용자 관리
권한
- 사용자에 따라서 접근할 수 있는 데이터와 사용할 수 있는 기능을 제한
GRANT
- 사용자를 생성하고 권한을 부여하는 명령어
문법
GRANT 권한 ON database.table TO `ID`@`HOST` IDENTIFED BY 'password'
사용자의 제한
- 데이터 베이스 서버에 접속하는 사용자 제한
- ID@host
- host : 접속자가 사용하는 머신의 IP
- IP를 특정하지 않으려면 '%' 사용
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 *.*; // 모든 데이터 베이스와 테이블 제어
권한(기능)의 제한
- 사용할 수 있는 권한을 제한
GRANT 권한 ON database.table TO `ID`@`HOST` IDENTIFED BY 'password'
- host : 접속자가 사용하는 머신의 IP
- IP를 특정하지 않으려면 '%' 사용
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
- 특정 사용자의 권한을 열람
문법
SHOW GRANTS [FOR USER] // USER 미 입력 시 자기 자신의 권한 확인
예제
SHOW GRANTS FOR dev; dev 사용자의 권한 열람
REVOKE
- 사용자의 권한을 제거
문법
REVOKE 권한 ON DATABASE.TABLE FROM [USER]
예제
REVOKE DELETE ON class.* FROM dev; // dev 사용자의 class 데이터베이스의 모든 테이블의 DELETE 권한 제거
DROP USER
- 사용자 삭제
문법
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 | 모든 권한 허용 |
Author And Source
이 문제에 관하여(우당탕탕 늑개 Database #9 - 사용자 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@doakuma/우당탕탕-늑개-Database-9-사용자-관리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)