2013년 8월 1일 목요일

oracle 11g : 오라클11g : 읽기전용 테이블 , readonly table

Oracle 11g : 읽기 전용 테이블

오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷  실무전문 강의)


이전 버전의 오라클에서는 테이블은 다른 사용자에게 SELECT 오브젝트 권한을 주는 경우에만 읽기전용이 가능했고 해당 Owner는 테이블에 Read/Write 둘 다 가능했으며 읽기전용으로 만드는 것은 불가능 했다.

오라클 11g에서부터 alter table 테이블명 read only 명령으로 읽기전용으로 변경이 가능하다,

[형식]
ALTER TABLE table_name READ ONLY;
ALTER TABLE table_name READ WRITE;


SQL>reate table readtest
as
select rownum id, '홍길동'||rownum name from dual;

SQL>select * from readtest;

SQL> alter table readtest read only;

테이블이 변경되었습니다.

SQL> insert into readtest values (2, '김길동');
insert into readtest values (2, '김길동')
            *
1행에 오류:
ORA-12081: "SCOTT"."READTEST" 테이블에 작업을 갱신하는 것이 허용되지 않습니다


SQL> delete from readtest;
delete from readtest
            *
1행에 오류:
ORA-12081: "SCOTT"."READTEST" 테이블에 작업을 갱신하는 것이 허용되지 않습니다


SQL> truncate table readtest;
truncate table readtest
               *
1행에 오류:
ORA-12081: "SCOTT"."READTEST" 테이블에 작업을 갱신하는 것이 허용되지 않습니다


SQL> alter table readtest read write;

테이블이 변경되었습니다.

SQL> truncate table readtest;

테이블이 잘렸습니다.

댓글 없음:

댓글 쓰기