[Database] MySQL GRANT all privileges 권한 부여 방법

GRANT는 사용자에게 접속권한, 오브젝트 생성권한 등의 권한을 부여해주는 SQL 문입니다.

사용자에게 select, update, delete 등의 권한을 주는 등으로 사용할 수 있습니다.

REVOKE는 사용자에게 부여한 권한을 다시 회수하는 명령어입니다.
(MySQL 기준)

 

형식

GRANT 사용권한 ON 데이터베이스.테이블 TO 사용자이름@'호스트' IDENTIFIED BY '패스워드';

 

위와 같이 사용할 수 있습니다

ALL PRIVILEGES 는 모든 권한을 다 준다는 의미로
SELECT, INSERT, UPDATE, DELETE 등의 권한을 별도로 줄 수도 있습니다

데이터베이스, 테이블 이름을 *.* 로 설정하면 모든 데이터베이스와 테이블에 대해서 권한이 생깁니다

SELECT user, host FROM user WHERE user NOT LIKE '';

비어있는 사용자는 제외

 

GRANT 쿼리 예시

GRANT ALL PRIVILEGES ON *.* TO winuser@'192.168.111.%' IDENTIFIED BY '4321';

 

*.* 모든 테이블의 192.168.111.* 로 시작되는 IP주소가 모두 접속하고
사용자 이름 winuser, 패스워드 4321 로 모두 접속할 수 있습니다

 

PostgreSQL

GRANT SELECT ON table_name TO username;

 

 

권한 정책 적용

flush privileges;

꼭 flush를 통한 적용을 해주어야 합니다.

 

권한 제거 및 삭제

revoke all on dbname.table from userid@host

 

권한 조회

MySql > show grants for userid@host
Postgres > select * from information_schema.role_table_grants where grantee = '<계정명>';

 

댓글

Designed by JB FACTORY