[Oracle] 테이블 권한 부여 방법 (GRANT, REVOKE)
- 데이터베이스/오라클
- 2022. 9. 5.
오라클에서 다른 스키마(사용자)에 생성된 테이블의 DML(SELECT, INSERT, UPDATE, DELETE ) 권한을 부여하기 위해서는 GRANT 문을 사용하면 된다. GRANT CREATE ANY TABLE 권한을 부여하면 다른 스키마에 테이블을 생성할 수 있는 권한이 부여된다. 자신의 스키마에는 GRANT CREATE TABLE 권한만 부여하면 생성, 삭제, DML 작업이 가능하다.
목차 |
권한을 부여하기 위해서는 DBA 계정 또는 권한 부여가 가능한 계정으로 로그인 후 권한을 부여해야 한다.
다른 스키마 테이블 DML 권한 부여
GRANT SELECT ON hr.employees TO scott;
GRANT INSERT ON hr.employees TO scott;
GRANT UPDATE ON hr.employees TO scott;
GRANT DELETE ON hr.employees TO scott;
다른 스키마(hr)에 생성된 테이블의 SELECT, INSERT, UPDATE, DELETE 권한을 scott 사용자에게 부여한다.
-- 여러개 권한을 부여
GRANT SELECT, INSERT, UPDATE, DELETE ON hr.employees TO scott;
-- 모든 권한 부여
GRANT all ON hr.employees TO scott;
GRANT 문에서 여러 개의 권한을 한 번에 부여할 때는 쉼표로 구분하여 권한을 부여할 수 있다.
scott 사용자 계정으로 로그인하여 hr 스키마에 생성된 employees 테이블을 SELECT 할 수 있다.
스키마(hr)을 붙이지 않고 테이블을 조회하고 싶으면 시노님을 부여해야 한다.
다른 스키마 테이블 DML 권한 제거
REVOKE SELECT ON hr.employees FROM scott;
REVOKE INSERT ON hr.employees FROM scott;
REVOKE UPDATE ON hr.employees FROM scott;
REVOKE DELETE ON hr.employees FROM scott;
scott 사용자 계정에 부여된 테이블 권한을 제거(회수)할 수 있다.
REVOKE SELECT, INSERT, UPDATE, DELETE ON hr.employees FROM scott;
REVOKE 문에서도 여러 개의 권한을 쉼표로 구 분 한여 한 번에 회수할 수 있다.
다른 스키마 테이블 생성, 수정 제거 권한
GRANT CREATE ANY TABLE TO scott;
GRANT ALTER ANY TABLE TO scott;
GRANT DROP ANY TABLE TO scott;
다른 스키마에 테이블 생성, 수정, 삭제 권한을 부여하기 위해서는 ANY 키워드를 사용하면 된다.
scott 사용자 계정으로 로그인하여 hr 스키마에 테이블을 생성할 수 있다.
다른 스키마 인덱스 생성, 수정 제거 권한
GRANT CREATE ANY INDEX TO scott;
GRANT ALTER ANY INDEX TO scott;
GRANT DROP ANY INDEX TO scott;
다른 스키마에 테이블 생성 시 PK 또는 인덱스를 생성하기 위해서는 INDEX 권한을 부여해야 한다.
자신의 스키마에 테이블 생성 권한 부여
GRANT CREATE TABLE TO scott;
자신의 스키마(scott)에는 테이블 생성 권한만 부여하면 삭제(DROP TABLE) 및 DML(SELECT, INSERT, UPDATE, DELETE) 권한은 자동으로 부여된다.
scott 사용자 계정으로 로그인하여 테이블을 생성 및 삭제를 할 수 있다.
자신의 스키마에 테이블을 생성할 때는 스키마명(scott) 없이 테이블명(emp)만 작성해도 된다.