CREATE USER <user 명>
IDENTIFIED BY <암호>
DEFAULT TABLESPACE <tablespace 명>
TEMPORARY TABLESPACE <tablespace 명>
QUOTA <크기> ON <tablespace 명>,
......
[ACCOUNT
{LOCK / UNLOCK}]
[PROFILE {<profile명> / DEFAULT}]
- User를 생성한다.
- DEFAULT TABLESPACE : User의 기본 tablespace
- TEMPORARY TABLESPACE : User의 기본 temporary tablespace
- QUOTA : tablespace별 허용된 저장량
- ACCOUNT : 계정 잠금 설정
- PROFILE : 적용될 PROFILE 지정
- CREATE 문장은 ALTER 문장과 형식이 동일하다.
SELECT
username, tablespace_name, max_bytes, max_blocks FROM dba_ts_quotas;
- 각 사용자의 tablespace별 quota량을 조회한다.
- MAX_BYTES : 할당된 quota량 (byte단위)
- MAX_BLOCKS : 할당된 quota량 (block개수)
- quota가 unlimited로 지정되어 제한하지 않는 경우 -1로 표시된다.
SELECT
tablespace_name, bytes, file_name FROM dba_data_files;
CREATE
TABLESPACE te
DATAFILE
'/app/ora12c/oradata/disk1/te01.dbf'
SIZE 3M,
'/app/ora12c/oradata/disk2/te02.dbf'
SIZE 3M;
CREATE
TABLESPACE st
DATAFILE
'/app/ora12c/oradata/disk2/st01.dbf'
SIZE 3M,
'/app/ora12c/oradata/disk1/st02.dbf'
SIZE 3M;
CREATE
TABLESPACE indx
DATAFILE
'/app/ora12c/oradata/disk1/indx01.dbf'
SIZE 2M,
'/app/ora12c/oradata/disk2/indx02.dbf'
SIZE 2M;
SELECT
tablespace_name, bytes, file_name FROM dba_data_files;
SELECT
tablespace_name, status, contents,
extent_management,
segment_space_management
FROM
dba_tablespaces;
CREATE
USER te
IDENTIFIED
BY te
DEFAULT
TABLESPACE te
TEMPORARY
TABLESPACE temp
QUOTA
UNLIMITED ON te
QUOTA 2M
ON st
QUOTA 2M
ON indx;
CREATE
USER st0
IDENTIFIED
BY st0
DEFAULT
TABLESPACE st
TEMPORARY
TABLESPACE temp;
CREATE
USER st1
IDENTIFIED
BY st1
DEFAULT
TABLESPACE st
TEMPORARY
TABLESPACE temp
QUOTA
UNLIMITED ON st
QUOTA 2M
ON indx;
CREATE
USER st2
IDENTIFIED
BY st2
DEFAULT
TABLESPACE st
TEMPORARY
TABLESPACE temp
QUOTA
UNLIMITED ON st
QUOTA 2M
ON indx
ACCOUNT
LOCK;
GRANT
connect, resource TO te, st1, st2;
SELECT
username, default_tablespace, temporary_tablespace, account_status, profile
FROM
dba_users
ORDER BY
1;
SELECT
username, tablespace_name, max_bytes, max_blocks FROM dba_ts_quotas
WHERE
lower(username) IN ('te', 'st0', 'st1', 'st2')
ORDER BY
1;
SELECT
grantee, granted_role FROM dba_role_privs
WHERE
lower(grantee) IN ('te', 'st0', 'st1', 'st2')
ORDER BY
1;
CONNECT와 resource는 권한이 아니라 권한의 묶음인 role이다. 이에 관해서는 다음
장에서 실습한다.
SELECT
grantee, privilege FROM dba_sys_privs
WHERE
lower(grantee) IN ('te', 'st0', 'st1', 'st2')
ORDER BY
1;
사용자에게 할당된 system 권한을 조회 한다.
unlimited tablespace 권한은 role에 할당 되지 않지만 resource role를 할당하면 자동으로 할당된다. 버전에 따라 다름으로 확인한다.
SELECT
grantee, owner, table_name, grantor, privilege
FROM
dba_tab_privs
WHERE
lower(grantee) IN ('te', 'st0', 'st1', 'st2')
ORDER BY
1;
사용자에게 할당된 object 권한을 조회 한다.
CONN
st1/st1
CONN
st2/st2
st2는 st1과 권한이 동일 하지만 lock 이 설정되어 사용이 불가능 하다.
CONN
st0/st0
st0는 lock이 설정되지는 않았지만 'CREATE session' 권한이 없어서 접속할 수 없다. 'CREATE session' 권한은 CONNECT role에 포함되어 있다.
CONN / AS
sysdba
GRANT
create session TO st0;
st0에 CREATE session 권한을 할당한다.
ALTER
USER st2
ACCOUNT
UNLOCK;
st2를 OPEN으로
설정한다.
CONN
st0/st0
CONN
st2/st2
댓글 없음:
댓글 쓰기