SQL> SELECT u.username, u.default_tablespace, max_bytes, max_blocks
2> FROM dba_users u, dba_ts_quotas q
3> WHERE u.username = q.username
4> AND u.default_tablespace = q.tablespace_name;
- 사용자의 DEFAULT TABLESPACE 별 quota량을 조회한다.
SQL> ALTER USER <user명>
2> QUOTA <크기> ON <tablespace명>;
- User의 quota 량을 조정한다.
SELECT username, tablespace_name, max_bytes, max_blocks FROM dba_ts_quotas
WHERE lower(username) IN ('te', 'st0', 'st1', 'st2')
ORDER BY 1;
* 확인 결과 st0은 quota가 없다. dba_ts_quotas는 quota가 설정된 user만 표시된다.
SELECT u.username, u.default_tablespace, max_bytes, max_blocks
FROM dba_users u, dba_ts_quotas q
WHERE u.username = q.username
AND u.default_tablespace = q.tablespace_name
AND lower(u.username) IN ('te', 'st0', 'st1', 'st2');
* 각 User의 DEFAULT TABLESPACE 별 quota량 -1은 제한하지 않는다는 의미이다.
CONN te/te
CREATE TABLE te (no NUMBER);
SELECT table_name, tablespace_name FROM user_tables;
CONN st0/st0
CREATE TABLE st0 (no NUMBER);
* st0에게는 table을 생성할 수 있는 권한이 없다.
CONN / AS sysdba
SELECT grantee, privilege FROM dba_sys_privs
WHERE grantee = 'ST0';
GRANT create table TO st0;
SELECT grantee, privilege FROM dba_sys_privs
WHERE grantee = 'ST0';
CONN st0/st0
CREATE TABLE st0 (no NUMBER);
INSERT INTO st0 VALUES (1);
CONN / AS sysdba
SELECT username, default_tablespace FROM dba_users
WHERE username = 'ST0';
ALTER USER st0
QUOTA UNLIMITED ON st;
SELECT username, tablespace_name, max_bytes, max_blocks
FROM dba_ts_quotas
WHERE username = 'ST0';
CONN st0/st0
INSERT INTO st0 VALUES (1);
'인프라 7기 > Oracle' 카테고리의 다른 글
Oracle 19c 설치 매뉴얼 (1) | 2023.04.17 |
---|---|
Oracle 실습 : User 생성, 관리, 삭제 (0) | 2023.03.16 |
Oracle 실습: Open/Close 상태에서 tablespace 이동 (0) | 2023.03.16 |
Oracle 실습 : Redo log file 재배치 (0) | 2023.03.13 |
Oracle 실습 : Redo log group/member 추가와 삭제 (0) | 2023.03.13 |