MariaDB의 Role 권한 부여에 대해 알아보자!
MariaDB 10.0.5 버전 부터는 각각의 권한들을 사용자에게 할당하는 방식뿐만 아니라 개별 권한들을 묵어서 하나의 그룹(Role) 권한으로 만들고 그 그룹 권한을 개별 사용자에게 부여하는 방식의 권한 관리도 지원한다. Oracle Database 에서 Role 권한 부여 하는 방식을 이 번 버전부터 지원하게 한 거 같다.
Create Role 명령이 실행될 때 마다 mysql 데이터베이스의 user 테이블에 그룹 권한의 정보가 저장되는데, 이때 mysql.user 테이블의 is_role 컬럼이 "Y"로 설정된다. 즉 mysql.user 테이블에 그룹 권한과 사용자 정보가 저장된다.
For example :
Role 생성
sql> CREATE ROLE dba;
sql> CREATE ROLE developer WITH ADMIN {CURRENT_USER | CURRENT_ROLE | USER | ROLE}
Role에 권한 부여
sql> GRANT ALL PRIVILEGES ON *.* TO dba;
sql> GRANT SELECT, INSERT, UPDATE, DELETE ON 'db'.* TO developer;
사용자에게 Role 권한 부여
sql> GRANT dba TO 'user'@'%';
위와 같이 사용자에게 Role 권한 부여를 하여도 그룹 권한이 적용 되지 않을 수 있다. 10.0 버전에서도 아직 권한 부여 후 권한 자동 인식이 되지 않았다.
그래서 아래와 같은 명령어가 추가 되어야 한다.
Role 권한 조회
sql> SELECT CURRENT_ROLE;
sql> SET ROLE dba;
sql> SELECT CURRENT_ROLE;
그리고 ROLE 권한은 2개 이상 부여 되지 않는다. 하나의 ROLE 권한 만 가질 수 있다.
-끝-