반응형
Mysql/maria DB에서 사용하는 권한에 대해 알아보겠습니다.
Mysql/mariad db의 권한에 대해 알아보겠습니다.
1. 권한 설정
권한 설정은 유저와 host를 명확히 하여 주어야 하며 password도 설정이 가능하며
with grant option은 설정시 맨 마지막에 적어야 한다.
grant '권한명' on db.'table 또는 *(전체)' to 'user'@'host' ;
grant '권한명' on db.'table 또는 *(전체)' to 'user'@'host' identified by 'password';
grant '권한명' on db.'table 또는 *(전체)' to 'user'@'host' identified by 'password' with grant option;
mysql> grant select, insert on test.* to 'test'@'localhost' ;
권한 명 | 설명 |
ALTER | 테이블 스키마 변경 |
ALTER ROUTINE | 스토어드 프로시저 변경 |
CREATE | 테이블 생성 |
CREATEROUTINE | 스토어드 프로시저 생성 |
CREATE TEMPORARY TABLES | 임시 테이블 생성 |
CREATEVIEW | 뷰 생성 |
DELETE | 레코드 삭제 |
DROP | 테이블 삭제 |
EVENT | 이벤트 생성 및 변경 |
EXECUTE | 프로시저 실행 |
INDEX | 인덱스 생성/삭제 |
INSERT | 레코드 INSERT |
LOCK TABLES | 테이블 잠금(InnoDB 테이블의 레코드 잠금아님) |
SELECT | 레코드 SELECT |
SHOW VIEW | 뷰의 생성 스크립트 조회 |
TRIGGER | 트리거 생성/삭제 |
UPDATE | 레코드 UPDATE |
GRANT OPTION | 권한 부여 옵션 |
ALL [PRIVILEGES] | GRANT OPTION 권한율 제외한 여기에 명시된 모든권한 |
CREATE USER | 사용자 생성 |
FILE | MySQL 서버에서 파일 접근 (SELECT INTO OUTFILE ... , LOAD DATA IN ...) |
PROCESS | 프로세스의 목록과 각 프로세스의 실행 쿼리 조회 (SHOW PROCESSLIST) |
RELOAD | 로그 및 권한 또는 테이블 정보에 대한FLUSH 명령 사용 권한 |
REPLICATION CLIENT | SHOW MASTER[SLAVE] STATUS 명령의 사용 |
REPLICATION SLAVE | 복제를 위해 바이너리 로그를 읽어갈 수 있는 권한 (복제용 사용자 계정이 가져야 하는 권한 ) |
SHOW DATABASES | DB의 목록 조회 권한 |
SHUTDOWN | MySQL 서버의 종료 권한 |
반응형
2. 권한 해제
부여된 권한을 다시 회수할 수 있다.
ex) revoke '권한명' on schema.'table 또는 *(전체)' from 'user'@'host' ;
mysql> revoke insert on test.* from 'test'@'localhost' ;
3. 유저별 권한 확인
유저에 대한 권한을 확인 할 수 있다.
mysql> select host, user, select_priv, insert_priv, delete_priv, update_priv
-> from mysql.user ;
+-----------------+---------------+-------------+-------------+-------------+-------------+
| host | user | select_priv | insert_priv | delete_priv | update_priv |
+-----------------+---------------+-------------+-------------+-------------+-------------+
| localhost | root | Y | Y | Y | Y |
| localhost | mysql.session | N | N | N | N |
| localhost | mysql.sys | N | N | N | N |
| % | root | Y | Y | Y | Y |
| 192.168.56.101 | test_job_user | N | N | N | N |
| localhost | test_job_user | N | N | N | N |
| localhost | test | Y | N | N | N |
+-----------------+---------------+-------------+-------------+-------------+-------------+
4. 유저별의 개별 DB 권한 확인
유저에 대한 개별 권한을 확인 할 수 있다.
mysql> select host, user, select_priv, insert_priv, delete_priv, update_priv
-> from mysql.user ;
+-----------------+---------------+-------------+-------------+-------------+-------------+
| host | user | select_priv | insert_priv | delete_priv | update_priv |
+-----------------+---------------+-------------+-------------+-------------+-------------+
| localhost | root | Y | Y | Y | Y |
| localhost | mysql.session | N | N | N | N |
| localhost | mysql.sys | N | N | N | N |
| % | root | Y | Y | Y | Y |
| 192.168.56.101 | test_job_user | N | N | N | N |
| localhost | test_job_user | N | N | N | N |
| localhost | xtra | N | N | N | N |
+-----------------+---------------+-------------+-------------+-------------+-------------+
5. 나의 계정 권한 확인
현재 접속한 계정의 권한을 확인 할 수 있다.
mysql> show grants ;
+-------------------------------------------------------------------------+
| Grants for test@localhost |
+-------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test'@'localhost' IDENTIFIED BY PASSWORD '*XXXX' |
| GRANT SELECT ON 'test'.* TO' test'@'localhost' |
+-------------------------------------------------------------------------+
이상 Mysql/MariaDB 권한에 대해 설명하였습니다.
반응형
'Database > Mysql' 카테고리의 다른 글
MySQL/mariadb Table 및 Index Size 확인 (0) | 2020.12.16 |
---|---|
Mysql/Mariadb IFNULL과 NULLIF 차이점 (0) | 2020.12.16 |
Mysql/Mariadb 집계함수 (SUM/AVG/MAX/MIN) (0) | 2020.12.15 |
Mysql/Mariadb DATE_ADD/ADDDATE/DATE_SUB (날짜/시간 더하기, 빼기 ) (0) | 2020.12.15 |
Mysql/Mariadb 문자함수 (SUBSTR,TRIM,REPLACE,REVERSE,LOWER,UPPER) (0) | 2020.12.15 |
댓글