728x90
반응형
맨 위로 올라가기

Oracle 사용자 생성 및 권한 부여

 

1. SQL* Plus를 실행합니다.

 

2. 관리자 권한으로 로그인합니다.

 

sqlplus "/as sysdba"

 

"/as sysdba"는 "SYSDBA" 권한으로 로그인하도록 SQL*Plus에 지시하는 것입니다.

"SYSDBA" 권한은 데이터베이스의 최상위 권한으로,

이 권한으로 로그인하면 모든 데이터 베이스 객체에 대한 권한을 가질 수 있습니다.

 

따라서 "sqlplus /as sysdba"를 실행하면 SQL*Plus가 관리자 권한으로 실행되며 데이터베이스의
최상위 권한인 SYSDBA 권한으로 로그인합니다. 이를 통해 데이터베이스 관리 작업을 수행할 수 있습니다.

 

단, SYSDBA 권한은 매우 강력한 권한이므로, 실수로 데이터베이스를 손상시키지 않도록 주의해야 합니다.

이 권한을 사용하여 수행하는 작업에 대해서는 항상 신중하게 고려하고 실행해야 합니다.

 


 

3. 다음과 같은 명령문을 사용하여 새로운 사용자를 생성합니다.

CREATE USER username IDENTIFIED BY password;

 

여기서 "username:은 새로운 사용자의 이름이고, "password"는 새로운 사용자의 비밀번호입니다.

 

ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다.

 

C##는 Oracle 12c  이상 버전에서 소개된, 공통 사용자(Common User)를 식별하기 위한 표기입니다.

이전 버전의 Oracle에서는 공통 사용자와 일반 사용자의 이름이 동일한 경우 충돌이 발생할 수 있었습니다.

이를 해결하기 위해 Oracle 12c에서는 공통 사용자 이름 앞에 C##을 붙여서,

공통 사용자를 일반 사용자와 구분할 수 있도록 하였습니다.

 

공통 사용자는 여러 개의 플러그 가능한 데이터베이스(PDB)에 걸쳐 사용되는 사용자로,

전체 CDB(Container Database)에서 공유됩니다. 따라서, 공통 사용자 이름 앞에 C## 을 붙임으로써,

해당 사용자가 공통 사용자 임을 명확히 구분할 수 있습니다.

 

예를 들어, C##MYUSER라는 이름의 공통 사용자가 있다면, 이 사용자는 CDB의 모든 PDB에 접근할 수 있으며,

이름 앞에 C##이 붙어 있기 때문에 해당 사용자가 공통 사용자임을 쉽게 구분할 수 있습니다.


 

4. 다음과 같은 명령문을 사용하여 새로운 사용자에게 권한을 부여합니다.

GRANT [권한] TO [사용자];

 

여기서 "[권한]"은 부여할 권한의 이름이고, "[사용자]"는 권한을 부여할 사용자의 이름입니다.

 

예를 들어, 다음과 같은 명령문을 사용하여 새로운 사용자에게 테이블 생성 권한을 부여할 수 있습니다.

GRANT CREATE TABLE TO username;

 

Oracle에서 "GRANT" 명령어를 사용하여 권한을 부여할 때, 다양한 권한을 설정할 수 있습니다.

여기에는 다음과 같은 권한의 종류가 있습니다.

 

  1. SELECT: 테이블, 뷰, 시퀀스, 프로시저 등에서 데이터 조회 권한을 부여합니다.
  2. INSERT: 테이블에 데이터 추가 권한을 부여합니다.
  3. UPDATE: 테이블에서 데이터 업데이트 권한을 부여합니다.
  4. DELETE: 테이블에서 데이터 삭제 권한을 부여합니다.
  5. ALTER: 테이블, 뷰, 시퀀스, 인덱스 등의 구조 변경 권한을 부여합니다.
  6. INDEX: 인덱스 생성 권한을 부여합니다.
  7. EXECUTE: 프로시저, 함수, 패키지 등의 실행 권한을 부여합니다.
  8. ALL: 모든 권한을 부여합니다.

또한 "WITH ADMIN OPTION" 키워드를 사용하여 권한 부여 대상자에게 해당 권한을 부여하는 권한을 부여할 수 있습니다.

이 경우, 권한 부여 대상자는 해당 권한을 가진 사용자에게 권한을 부여할 수 있습니다.

 

아래 권한은 Oracle에서 기본적으로 제공되는 권한 중 일부입니다.

 

  1. CONNECT
    • 데이터베이스에 연결할 수 있는 권한을 부여합니다. CONNECT 권한이 있는 사용자는 데이터베이스에
      접속하여 객체를 조회하거나 DDL 문장을 실행할 수 있습니다.
  2. RESOURCE
    • 테이블, 시퀀스, 프로시저 등을 생성하고, 저장할 수 있는 권한을 부여합니다.
      RESOURCE 권한을 가진 사용자는 데이터베이스 객체를 생성, 저장, 조회 및 변경할 수 있습니다.
  3. DBA
    • 데이터베이스 관리자 권한으로, 모든 데이터 베이스 객체에 대한 완전한 권한을 부여합니다.
      이 권한을 가진 사용자는 데이터베이스 생성, 백업 및 복원, 권한 부여 등 모든 데이터베이스
      관리작업을 수행할 수 있습니다.

하지만 최근 버전의 Oracle에서는 위의 권한들 대신,

"CREATE SESSION", CREATE TABLE", "CREATE PROCEDURE"와 같은 더 작은 권한 단위로 권한을 부여하도록

권장하고 있습니다. 이는 보안상 이점을 가지기 때문입니다. 따라서 가능하다면 위의 권한들 보다 더 구체적인

권한 단위를 사용하는 것이 좋습니다. 

 

GRANT CONNECT, RESOURCE, DBA TO C##username;


5-1. SQL*Plus 에서 데이터베이스 생성(CLI)

 

 

다음 명령어를 입력하여 새로운 데이터베이스를 생성할 준비를 합니다.

CREATE DATABASE <데이터베이스 이름>

 

여기서 '<데이터 베이스 이름>'은 생성할 데이터베이스의 이름을 지정하는 부분입니다.

 

데이터베이스를 생성할 때, 다양한 구성 옵션을 지정할 수 있습니다.

예를 들어, 데이터베이스의 데이터 파일과 로그 파일의 위치를 지정할 수 있습니다.

이러한 옵션은 CREATE DATABASE 명령어의 인자로 지정됩니다.

 

다음은 CREATE DATABASE 명령어에서 지정할 수 있는 몇 가지 인자의 예시입니다.

  • "DATAFILE <파일 경로>": 데이터베이스의 데이터 파일이 저장될 위치를 지정합니다.
  • "SIZE <파일 크기>": 데이터베이스의 데이터 파일이나 로그 파일의 초기 크기를 지정합니다.
  • "MAXSIZE <최대 파일 크기>": 데이터베이스의 데이터 파일이나 로그 파일의 최대 크기를 지정합니다.
CREATE DATABASE mydatabase
DATAFILE '/u01/app/oracle/oradata/mydatabase/system01.dbf' SIZE 100M
MAXSIZE 500M

 

데이터베이스가 성공적으로 생성되면, 새로운 데이터베이스에 대한 연결을 설정합니다.

다음 명령어를 실행하여 데이터베이스에 연결합니다.

CONNECT SYS as SYSDBA

이제 새로 생성한 데이터베이스에 대한 관리 작업을 수행할 수 있습니다.

 

 

5-2. SQL Developer 에서 데이터베이스 생성(GUI)

 

 

728x90
반응형

'Language > RDBMS' 카테고리의 다른 글

WHERE 조건절 내 IN, OR 연산 관련  (0) 2023.04.18
testUser Query  (0) 2023.04.17
인덱스 기본  (0) 2023.03.19
조인 수행원리  (0) 2023.03.19
옵티마이저와 실행계획  (0) 2023.03.19

+ Recent posts