[Oracle] 스키마 생성 작업

HYEOB KIM·2023년 6월 13일
0

Oracle

목록 보기
42/58

1. User 생성


참고
sec_case_sensitive_logon 파라미터는 비밀번호의 대소문자 구분 여부를 알 수 있습니다.

SQL> show parameter sec_case_sensitive_logon
-- TRUE(default)이면 패스워드 입력 시 대소문자를 구분한다는 의미입니다.
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sec_case_sensitive_logon             boolean     TRUE

1) username과 password만 주고 user 생성

-- default tablespace를 모를 때
create user <username>
identified by "<password>";

또는

-- User 생성하면서 동시에 profile 부여 방법
create user <username>
identified by "<password>"
profile <profile_name>;

2) user 생성 후 기본 role 부여

grant resource, connect to <username>;

3) 접속 테스트

conn <username>/<password>;

(해당 비밀번호에 @와 같은 특수문자가 들어간다면 "<password>"로 감싸주어야 합니다)

conn <username>/"<password>";

(마찬가지로 sqlplus로 접속하는 경우 비밀번호에 @와 같은 특수문자가 들어간다면 " 또는 \"로 감싸주어야 합니다)

$ sqlplus <username>/"<password>"

$ sqlplus <username>/\"<password>\"

2. default_tablespace 확인


  • User 생성 후 해당 User에 대한 default tablespace 조회
select username, default_tablespace, profile 
from dba_users;

3. quota 할당


  • default_tablespace에 대해 unlimited quota 부여
alter user <username> quota unlimited on <tablespace_name>;

4. 권한 부여


(예시) 특정 스키마에 대한 오브젝트 조회 권한 부여

set lines 300 pages 400
set heading off
set feedback off

spool grant_select.sql
select 'grant select on ' || owner || '.' || table_name || ' to <username>;'
from dba_tables
where owner in ('<username1>','<username2>', ...);
spool off

5. 결과값 조회

set feedback on

spool result.out
@grant_select.sql
spool off

6. grant 문의 개수와 결과값 개수의 일치 여부 확인

$ cat grant_select.sql | grep grant | wc -l
1380
$ cat result.out | grep succeed | wc -l
1380
profile
Devops Engineer

0개의 댓글