[Oracle] 유저에게 공간 할당 제한

·2025년 9월 3일

오라클 관리

목록 보기
86/163

💡 데이터를 insert하는 프로시져를 잘못 짜서 무한 루프가 돌면서 insert가 무한발생해서
테이블스페이스가 full이 되는 장애상황을 막으려면 할당량을 제한해야함


[실습1] scott20 유저를 패스워드를 tiger로 생성하고 connect 와 create table 권한을 grant 하시오

SYS @ ORA19 > create user scott20
              identified by tiger;

사용자가 생성되었습니다.

SYS @ ORA19 > grant connect to scott20;

권한이 부여되었습니다.

SYS @ ORA19 > grant create table to scott20;

권한이 부여되었습니다.

SYS @ ORA19 >

[실습2] scott20 유저가 ts7000 테이블스페이스를 1m만 사용할 수 있도록 쿼터를 제한하시오

SYS @ ORA19 > alter user scott20
              Quota  1m on ts7000;

사용자가 변경되었습니다.

문제1. scott20 유져로 접속해서 ts7000에 테이블을 emp20 이름으로 생성하고 데이터를 계속 입력해서 1m가 넘으면 에러가 나는지 확인하시오

SYS @ ORA19 > connect scott20/tiger
연결되었습니다.
SCOTT20 @ ORA19 > create table emp20
                 ( empno number(10),
                  ename  varchar2(20) )
                 tablespace ts7000;

테이블이 생성되었습니다.

SCOTT20 @ ORA19 > insert into emp20 values(1111,'aaa');

1 개의 행이 만들어졌습니다.

SCOTT20 @ ORA19 > insert into emp20
                 select *
                 from emp20;

1 개의 행이 만들어졌습니다.

SCOTT20 @ ORA19 >
SCOTT20 @ ORA19 > /

2 행이 생성되었습니다.

SCOTT20 @ ORA19 > /

4 행이 생성되었습니다.

SCOTT20 @ ORA19 > /

8 행이 생성되었습니다.

.
.
.

SCOTT20 @ ORA19 > /

32768 행이 생성되었습니다.

SCOTT20 @ ORA19 > /
insert into emp20
*
1행에 오류:
ORA-01536: 'TS7000' 테이블스페이스에 영역 할당량이 초과됐습니다

💡 Quota 를 1m 로 할당했기 때문에 ts7000 테이블스페이스를 1m이상 사용할 수 없게 됨


문제1. 다시 scott20 이 ts7000 테이블 스페이스의 공간을 자유롭게 쓸 수 있도록 quota를 unlimited 로 변경하시오

SYS @ ORA19 > alter user scott20
              Quota unlimited on ts7000;

사용자가 변경되었습니다.


SYS @ ORA19 > grant unlimited tablespace to scott20;

권한이 부여되었습니다.

문제2. king2 유져가 users 테이블스페이스를 5m 만 쓸 수 있도록 Quota 를 제한하시오

alter user king2
 Quota 5m on users;

select * 
 from dictionary
 where table_name like '%QUOTA%';
 
select *
 from dba_ts_quotas;

0개의 댓글