Oracle 11g : 읽기 전용 테이블
이전 버전의 오라클에서는 테이블은 다른 사용자에게 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;
테이블이 잘렸습니다.
이전 버전의 오라클에서는 테이블은 다른 사용자에게 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;
테이블이 잘렸습니다.
댓글 없음:
댓글 쓰기