2013년 11월 13일 수요일

Oracle 11g : 읽기 전용 테이블(오라클 ReadOnly Table) Table Read/Write, 오라클학원, ORACLESQL학원

Oracle 11g : 읽기 전용 테이블(오라클 ReadOnly Table)  Table Read/Write, 오라클학원, ORACLESQL학원

 
이전 버전의 오라클에서는 테이블은 다른 사용자에게 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;
 
테이블이 잘렸습니다.
 

댓글 없음:

댓글 쓰기