DBMS는 보안을 유지하기 위해, 계정이 발급된 사용자가 로그인에 성공했을 경우에만 데이터베이스에 접근이 가능하도록 하는 접근 제어(access control)기능을 기본으로 제공
계정을 생성, 변경, 제거하는 사용자 계정 관리는 DBA가 담당
데이터베이스에 존재하는 모든 객체는 기본적으로 해당 객체를 생성한 사용자만 사용 권한을 지님
필요에 따라 공유할 목적으로 다른 사용자에게 권한을 부여, 취소할 수 있음
GRANT 권한 ON 객체 TO 사용자 [WITH GRANT OPTION];
※ WITH GRANT OPTION을 포함하여 부여 받은 사용자는 다른 사용자에게도 권한 부여 가능
보안을 강화하기 위해 뷰를 이용할 수 있음
테이블 일부분을 뷰로 생성한 후, 사용자에게 이 뷰에 대한 권한을 부여하는 것도 보안을 유지하는 데 도움이 됨
REVOKE 권한 ON 객체 FROM 사용자 CASCADE : RESTRICT;
사용자가 WITH GRANT OPTION으로 인한 추가적인 권한 부여가 되었다면 이를 처리하는 방법이 필요 → 연쇄적으로 취소하고자 하면 CASCADE, 취소하지 않도록 하려면 RESTRICT를 사용
DBA는 각 테이블의 소유주가 사용자들에게 어떤 권한을 부여했는지, WITH GRANT OPTION을 포함하여 권한을 부여했는지 등 권한 목록을 작성해두고 관리하는 것이 필요
DBA가 시스템 권한을 취소할 때도 REVOKE문을 이용
ex)REVOKE CREATE TABLE FROM mhgo;
여러 사용자에게 동일한 권한들을 부여하고 취소하는 번거로운 작업을 편리하게 수행할 수 있도록 도움을 주는 것
새로운 역할을 생성하는 기능은 DBA가 담당 / CREATE ROLE 롤이름;
역할에 필요한 권한들을 넣을 떄는 GRANT 이용 - 테이블 소유자가 수행
역할에 사용자에게 부여, 취소하는 것은 DBA가 담당 / GRANT/REVOKE 롤이름 TO/FROM 사용자;
역할 제거는 DBA가 담당 / DROP ROLE 롤이름;
출처 - 김연희저자의 데이터베이스 개론 2판 - 한빛 아카데미