Oracle 23c에 PDB 유저를 Read Only로 설정할 수 있는 기능이 추가되었습니다.
테스트를 위해 아래와 같이 u1 유저를 생성하겠습니다.
-- 1: SYS
DROP USER u1 CASCADE;
CREATE USER u1 IDENTIFIED BY u1 DEFAULT TABLESPACE users QUOTA UNLIMITED ON users;
GRANT CREATE SESSION to u1;
아래와 같이 Read Only로 설정한 u1 유저에서 DML을 수행하면 ORA-28194 에러가 발생합니다.
-- 2-1: U1
CREATE TABLE t1 (c1 NUMBER);
INSERT INTO t1 VALUES (1);
1 개의 행이 만들어졌습니다.
-- 2-2: SYS
ALTER USER u1 READ ONLY;
-- 2-3: U1 (reconnected)
INSERT INTO t1 VALUES (2);
ORA-28194: Can perform read operations only
-- 2-4: SYS
INSERT INTO t1 VALUES (2);
1 개의 행이 만들어졌습니다.
ALTER USER u1 READ WRITE;
-- 2-5: U1 (reconnected)
INSERT INTO t1 VALUES (2);
1 개의 행이 만들어졌습니다.
Read Only로 설정한 유저는 DBA_USERS 뷰의 read_only 칼럼이 NO로 표시됩니다.
-- 3
SELECT read_only FROM dba_users WHERE username = 'U1';
READ_ONLY
---------
NO
1개의 행이 선택되었습니다.
관련 링크