티스토리 뷰

MariaDB 계정 생성, 권한부여, 권한삭제, 비밀번호 변경

계정 생성

mariadb[]> GRANT USAGE ON *.* TO [사용자ID]@접속호스트 IDENTIFIED BY '패스워드';
mariadb[]> GRANT USAGE ON *.* TO foouser@localhost IDENTIFIED BY 'password';
mariadb[]> GRANT USAGE ON *.* to foouser@'%' IDENTIFIED BY 'password';

% 는 모든 호스트 접근을 허용합니다.


계정 삭제

mariadb[]> DROP USER [사용자ID]@[호스트];


권한 부여

mariadb[]> GRANT [권한들] ON [디비이름].[테이블이름] TO '[사용자ID]'@'[접속호스트]';
mariadb[]> GRANT SELECT, INSERT, UPDATE, CREATE VIEW, UPDATE, DROP, INDEX, EXECUTE ON dbname.* TO 'foouser'@'localhost' [IDENTIFIED BY 'password']; 
mariadb[]> GRANT ALL PRIVILEGES ON *.* TO foouser@'%' [IDENTIFIED BY 'password'];

*.* 은 모든 디비의 모든 테이블들을 말합니다.

dbname.* 은 dbname의 모든 테이블들 말합니다.

[IDENTIFIED BY ‘password’] 를 생략하면 기존 계정의 비밀번호를 그대로 사용합니다.

권한 삭제

mariadb[]> REVOKE [권한들] ON [디비이름].[테이블이름] FROM [사용자ID]@[접속호스트];
mariadb[]> REVOKE DELETE ON dbname.* FROM foouser@'%';
mariadb[]> REVOKE ALL ON *.* FROM foouser@'localhost';

권한을 빼았는 개념이죠.

권한 전파(?)

mariadb[]> FLUSH PRIVILEGES;

변경된 권한을 적용(?) 하는 명령입니다. db에서 무언가 변경이 되면, 꼭 마무리로 이 명령어를 써주세요. 왜 쓰는지 아직 조사 안했습니다.

비밀번호 변경

mariadb[]> SET PASSWORD FOR [사용자ID]@[접속호스트];

권한 확인

mariadb[]> SHOW GRANTS FOR [사용자ID]@[접속호스트];