Oracle Sqlplus –3.USER지정, 사용자의 권한 관리에 대해 알아 보겠습니다.
3. TABLESPACE의 USER지정
2장에서 만든 TABLESPACE를 각 유저에게 할당하므로써 TABLESPACE를 일일이 지정하는 번거러움을 해소할 수 있다.
(1) 이미 생성된 유저에게 TABLESPACE를 지정
다음과 같이 이미 생성된 유저의 TABLESPACE를 BUSSINESS로 변경함으로 일일이 TABLESPACE명을 지정해야 하는 번거로움을 피할 수 있다.
SQL>ALTER user HAN004 2 default tablespace BUSINESS |
(2) 새로 생성하는 유저에게 TABLESPACE를 지정
HAN005 user를 password는 HAN005
temporary tablespace는 temporary_data를 사용하고
default tablespace는 BUSSINESS를 사용하도록 지정한다.
SQL>create user HAN004 identified by HAN004 2 default tablespace user_data사용자가 생성되었습니다. |
SQL> connect system/manager 연결되었습니다. SQL> select * from dba_users; |
4. 사용자의 권한 관리
4-1. USER에 권한부여
각 유저의 권한을 직무에 맞게 조절하는 방법을 제시한다.
[예1] USER1이라는 유저를 생성 후 CREATE SESSION권한을 부여한다.
CREATE SESSION은 DATABASE에 연결할 수 있는 권한만을 부여받는다.
SQL> create user user1 identified by user1;사용자가 생성되었습니다.SQL> grant create session to user1;권한 부여 성공입니다.SQL> connect user1/user1연결되었습니다. |
[예2] 생성된 user1에서 table을 생성해 본다.
user1은 db접속 권한은 있지만 table의 생성 권한이 없으므로 에러가 발생한다.
SQL> select * from tab;선택된 레코드가 없습니다. |
SQL> create table test(dummy char(1)); create table test(dummy char(1)) *라인 1 에 오류:ORA-01031: 권한이 불충분합니다 |
[예3] user1에 부여된 권한을 확인한다.
SQL> select * from session_privs; |
SQL> select * from user_sys_privs; |
SQL> select default_tablespace,temporary_tablespace from user_users; |
4-2. 시스템 수준의 권한
역 할 | 권한 |
CONNECT | ALTER SESSION, CREATE CLUSTER, CREATE DATABASE LINK, CREATE SEQUENCE, CREATE SESSION, CREATE SYNONYM, CREATE TABLE, CREATE VIEW, |
RESOURCE | CREATE CLUSTER, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TABLE, CREATE TRIGER |
DBA | SYSTEM LEVEL의 모든 권한 |
[예1] USER1에 CONNECT 권한 부여후 TABLE의 생성
SQL> grant CONNECT to user1; |
SQL> connect user1/user1; |
SQL> select * from tab; |
SQL> select * from user_catalog; |
4-3. USER의 quota
SQL> select * from user_ts_quotas;
선택된 레코드가 없습니다.
SQL> connect system/manager; 연결되었습니다. SQL> l 1 alter user user1 2 default tablespace user_data 3* quota 5k on user_data; 사용자가 변경되었습니다. |
SQL> connect user1/user1; 연결되었습니다. SQL> l 1 create table test1 2* (udno number(10)) SQL> / create table test1*라인 1 에 오류:ORA-01536: 테이블 영역 ‘USER_DATA’ 에 대한 영역 할당량이 초과됐습니다 |
SQL> connect system/manager; 연결되었습니다. SQL> alter user user1 quota 5M on user_data 2 ; 사용자가 변경되었습니다. |
SQL> select object_name, object_type from user_objects; |
SQL> insert into test 2 (idno) 3 values 4* (100); 1 개의 행이 작성되었습니다. |
SQL> connect system/manager; 연결되었습니다. SQL> select * from user1.test; IDNO ——— 100 |
답글 남기기