권한부여 & 회수 

- 생성된 계정이 할 수 있는 일을 부여하는 것

   > 생성된 계정은 아무런 권한을 가지고 있지 않음

- 관리자 계정만 권한 부여, 권한 회수가 가능함

- grant로 주는 권한은 oracle에 재접속해야 반영됨

권한명 하는일
connect Oracle DBMS에 접속할 수 있는 권한
resource Oracle DBM 자원 사용 권한
 - table space를 사용할 수 있음 (table 생성 등)
dba 일반계정을 DBA계정으로 권한 부여
 - 일반 계정이 관리자의 역할을 수행할 수 있음
create view view 생성 권한
create synonym 시노님 생성 권한

 

* synonym

- 테이블에 별명을 부여하여 사용하는 객체

- create synonum 권한이 부여된 계정만 사용할 수 있음

- alias와는 다르게, synonym명과 원래 테이블명 둘다 사용 가능

- user_synonyms data dictionary에서 확인 가능

- synonym과 public synonym지원 (public synonym은 다른 계정에서도 사용 가능함)

- 권한 부여) grant [public] create synonym to 계정명;

- 권한 회수) revoke [public] create synonym from 계정명;

- 시노님 생성) create synonym 시노님명 for 테이블명;

- 시노님 삭제) drop synonym 시노님명;

 

* grant,revoke 사용 (DCL)

- 권한 부여) grant 권한,,, to 계정명;

- 권한 회수) revoke 권한,,, from 계정명;

- Oracle 12c 부터는 resource 권한만 부여되어서는 테이블을 생성할 수 없음

   >> resource 권한 이후 table space에 대한 사용권한을 부여해야 함

   > 문법) alter user 계정명 default tablespace 테이블 스페이스명 quota unlimited on users

- 계정 사용하는 기본 tablespace는 users01.dbf파일이고 users라는 이름으로 사용됨

 

* 권한 관련 data dictionary

- DBMS 자체의 사용권한 조회 : dba_role_privs

- SQL문의 사용권한 조회(synonym, view도 확인가능) : dba_sys_privs

- synonym 조회 : user_synonyms

 

 

 view 

- 실제 테이블로부터 도출된 가상테이블

- 권한이 부여된 계정만 view를 생성할 수 있음

- user_views data dictionary에서 확인 가능

- 장점) 실제 테이블을 숨겨놓고 가상 테이블을 사용하므로 보안성이 향상됨

- DML 작업이 가능

    > view에 작업한 내용이 실제 테이블에 반영되고 테이블에서 작업한 내용이 view에 반영됨

- view에 DML작업을 막고 싶다면 veiw를 생성할 때 가장 마지막에 with read only를 사용

 

- 단순 뷰(하나의 테이블로 도출된 view), 복합 뷰(여러 개의 테이블에서 도출된 view)로 생성할 수 있음

① 단순 뷰

- 하나의 테이블에서 도출된 뷰

- 함수나 연산자를 사용하지 않고 만들어진 뷰

- DML 수행(insert, updtae, select, delete)이 가능함

② 복합 뷰

- 여러 개의 테이블에서 도출된 뷰

- join, 함수, 연산식을 사용한 뷰

 > 함수/연산식 :
     (insert,update) 연산, 함수가 사용된 열은 추가 작업이 되지 않음 / 해당 컬럼을 제외한 일반 컬럼은 사용 가능
     (delete) 집계함수를 사용하여 view를 생성하면 delete 불가 /
                      단일함수, 연산자를 사용한 컬럼에 대해서는 view에 생성된 값과 같다면 삭제 가능

  > join : DML 중 select만 가능 (insert, update, delete 불가)

              : view를 생성하면 select이 단순해짐

         => 복잡한 join을 만들어두고, 필요한 것만 그때그때 select하자!

 

* view 권한부여/회수 : 관리자 계정만 가능

- 권한 부여) grant creat view to 계정명;

- 권한 회수) revoke create view from 계정명;

- view 생성) create view 뷰명 (컬럼명,,,) as (select ,,,);  -- create subquery와 문법 동일

                                                                                                          -- (컬럼명,,)은 생략 가능

- view 삭제) drop veiw 뷰명;  -- 테이블이 삭제되면 view도 삭제됨

'Development > Oracle' 카테고리의 다른 글

[Oracle] 백업/복구/exists 함수  (0) 2021.10.06
[Oracle] index  (0) 2021.10.04
[Oracle] sequence  (0) 2021.09.30
[Oracle] alter  (0) 2021.09.29
[Oracle] 제약사항 (Constraint)  (0) 2021.09.28

+ Recent posts