본문 바로가기

Database/mariaDB administrator

[mariadb] 유저별 권한 관리, 권한 목록 종류, DB 권한 관리의 필요성, 권한 조회

안녕하세요.

 

요즘 새로운 회사에 적응을 해가고 있습니다.

 

오늘은 mariadb 에서 계정을 생성하고, 각 계정별 권한을 부여하는 업무를 진행 합니다.

 

DB를 관리 함에 있어서 계정은 일종의 방화벽 역할도 할 수 있습니다.

 

계정별로 접속 가능한 source를 설정 할 수 있으며, 권한을 관리하여

 

권한 밖의 일을 미연에 방지 함으로 DB 관리의 효율성을 가져 올 수 있습니다.

 

이처럼 권한 관리는 DB를 운영 함에 필수적인 시스템이라고도 할 수 있습니다.

 

DB마다 특성이 있겠지만, 전 개인별 계정을 사용 하는것을 추천 합니다.

 

통합 계정을 사용 하면 사용자의 편의성은 증대 되겠지만, 관리적인 효율성은 떨어지게 됩니다.

 

특정 개발자가 본인이 사용 하는 이외의 오브젝트를 접근하거나, 컨트롤 할 수 있게 된다면

 

거기에서 발생하는 리스크는 상상을 초월 할 수 있습니다.

 

그렇게 개별 계정을 생성하고 권한을 부여하고, 관리하는것이 더 좋다 생각합니다.

 

더 나아가 프로그램에서 쓰는 서비스 계정을 또 별도로 두는 것 이죠.

 

계정별로 해당 정보를 user테이블을 통해 확인 할 수 있으며,

 

이를 별도로 뷰나 테이블을 통해서 확인 할 수도 있습니다. 물론 관리 모델을 만들어야 할것 입니다.

 

#모든 권한 부여 및 권한 회수
grant all on * to 'user_id' with grant option;
revoke all privileges, grant from 'user_id';

#권한 확인
SELECT * FROM mysql.user;

#접속 계정의 DB별 권한 확인
SELECT * FROM mysql.db;

#특정 계정의 권한 확인
SHOW GRANTS FOR 'user_id';

 

 

오늘은 우선, mariadb 에서 우선 계정을 생성하고 나서,

 

각 계정에 필요한 권한을 부여해야 하기에

 

mariadb에서 부여 및 관리 할 수 있는 권한 목록을 정리 해 둡니다.

 

아래 목록을 참고하여 업무를 진행 하는데 있어서 도움이 되시길 바랍니다.

 

 

감사합니다.