데이터베이스 보안을 위해 시스템 권한과 객체 권한을 사용자에게 설정할 수 있습니다.
롤에 여러 가지 권한을 포함시켜 보다 간단하게 사용자에게 권한 부여를 할 수 있습니다.
객체를 간단하게 접근하도록 하기 위해 객체 이름에 동의어를 정의할 수 있습니다.
사용 권한은 시스템 권한(System Privileges)과 객체 권한(Object Privileges)으로 나뉩니다.
시스템 권한에는 사용자의 생성과 제거, 자원 관리가 있습니다.
권한을 부여받기 위한 사용자를 CREATE USER 문을 사용하여 생성
다음은 사용자 생성을 위한 CREATE USER 명령어의 형식입니다.
객체 권한은 특정 객체에 조작을 할 수 있는 권한입니다. 객체의 소유자는 객체에 대한 모든 권한을 가집니다.
다음은 객체와 권한 설정할 수 있는 명령어를 매핑시켜 놓은 표입니다.
객체 권한은 테이블이나 뷰나 시퀀스나 함수 등과 같은 객체별로 DML문(SELECT, INSERT, DELETE)을 사용할 수 있는 권한을 설정하는 것입니다.
다음은 객체에 권한을 부여하기 위한 형식입니다.
GRANT 명령어의 형식은 어떤 객체(②)에 어떠한 권한(①)을 어느 사용자(③)에게 부여하는가를 설정합니다. 시스템 권한과 차이점이 있다면 ON 옵션이 추가된다는 점입니다. ON 다음에 테이블 객체나 뷰 객체 등을 기술합니다.
특정 객체에 대한 권한은 그 객체를 만든 사용자에게만 기본적으로 주어집니다.
우리가 지금까지 사용했던 EMP 테이블은 hr 사용자 소유의 테이블입니다.
그러므로 다음과 같이 hr 사용자로 로그인해서 usertest01 사용자가 테이블 객체 EMP를 조회할 수 있도록 권한 부여를 해야 합니다.
객체 권한은 객체를 갖고 있는 사용자로 접속한 후에 사원을 조회할 수 있는 SELECT 권한을 usertest01에게 부여합니다.
1) hr로 접속하여 사원 테이블 조회 권한 부여하기
사용자에게 객체 권한을 WITH GRANT OPTION과 함께 부여하면 그 사용자는 그 객체를 접근할 권한을 부여 받으면서 그 권한을 다른 사용자에게 부여 할 수 있는 권한도 함께 부여받게 됩니다.
SYSTEM으로 로그인하여 사용자를 새로 생성한 후 데이터베이스에 연결할 수 있는 CREATE SESSION과 CREATE TABLE, CREATE VIEW 권한을 부여합니다.
WITH GRANT OPTION을 지정하였기에 다른 사용자에게 객체권한을 부여할 수 있습니다.
여러 사용자에게 부여된 권한을 수정하고 싶을 때에도 일일이 사용자마다 권한을 수정하지 않고 롤만 수정하면 그 롤에 대한 권한 부여를 한 사용자들의 권한이 자동 수정됩니다. 이 밖에 롤을 활성화 비활성화 함으로서 일시적으로 권한을 부여했다 철회할 수 있으므로 사용자 관리를 간편하고 효율적으로 할 수 있습니다.
롤은 오라클 데이터베이스를 설치하면 기본적으로 제공되는 사전 정의된 롤과 사용자가 정의한 롤로 구분됩니다.
사용자가 직접 롤을 정의하는 방법은 복잡하므로 사전에 정의된 롤부터 살펴보도록 합시다.
비공개 동의어
공개 동의어