> For the complete documentation index, see [llms.txt](https://leeans-dev-book.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://leeans-dev-book.gitbook.io/docs/lecture/database/user.md).

# USER 만들기

## 오라클 DB 사용자 관리, 스키마란? (사용자 생성, 권한부여)

**오라클 DB에 접속하여 데이터를 관리하는 계정을&#x20;**<mark style="color:blue;">**사용자(USER)**</mark>**라고 표현합니다.**

**오라클 DB는 각 사용자 별로  테이블, 인덱스, 뷰 등의&#x20;**<mark style="color:red;">**객체가 따로 생성**</mark>**됩니다.**

### &#x20;- 사용자 관리가 필요한 이유

* 실무에서 사용하는 여러 종류의 서비스는 한 사용자가 관리하기 힘들다.
* 따라서 업무 분할과 효율, 보안을 고려하여 업무에 따라 여러 사용자를 나눈다.

<figure><img src="https://3814826491-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJyHOwztPxBT3bLpisjCt%2Fuploads%2Fsw5Ahz4Tcl2KdbbeqPq4%2FScreenshot_115.png?alt=media&amp;token=f7a3af2d-cafd-40c7-91ff-c91d80c723fb" alt=""><figcaption></figcaption></figure>

오라클 DB에서는 스키마와 사용자를 구별하지 않고 사용하기도 합니다.

하지만 정확히는 SCOTT과 같은 계정은 사용자고,

SCOTT 계정으로 만든 모든 객체를 SCOTT의 스키마라고 말합니다.

> 🤔**스키마란?**&#x20;
>
> 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합입니다. 좀 더 자세하게 말하면 DB를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한 것이 바로 스키마입니다.
>
> ✔ 메타데이터란 많은 양의 데이터를 수집, 저장, 분석할 수 있도록 일관된 방식으로 구조화된, 다른 데이터를 설명하는 데이터입니다. ( DB를 설명하는 데이터라는 뜻이 됩니다. )

{% embed url="<https://oracle.tistory.com/492>" %}

### **유저 및 스키마 생성(오라클에서는 유저명 = 스키마)**

CREATE USER <mark style="color:red;">유저명</mark> IDENTIFIED BY <mark style="color:red;">비밀번호</mark>;

**권한(개체생성/변경/제거,연결,관리자) 부여**

GRANT RESOURCE,CONNECT,DBA TO <mark style="color:red;">유저명</mark>;

**유저 생성시 ORA-65096 에러가 날 경우(12C버전 이후부터 발생하는 이슈)**

해결 방법

방법1.유져명 앞에 C## 추가

CREATE USER <mark style="color:red;">C##유저</mark>명 IDENTIFIED BY <mark style="color:red;">비밀번호</mark>;

&#x20;

방법2. 해당 SQL입력

ALTER SESSION SET "\_ORACLE\_SCRIPT"=true;

※ <mark style="color:orange;">위 쿼리문을 실행 하면 유저 생성시 앞에 C##을 안 붙혀도 됩니다.</mark>

### 유저 생성 후 권한 부여&#x20;

DBeaver 에서 SYSTEM 계정으로 접속 후 아래 쿼리 실행&#x20;

```sql
ALTER SESSION SET "_ORACLE_SCRIPT"=true;

CREATE USER scott IDENTIFIED BY tiger;

GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO scott IDENTIFIED BY tiger;

```

이후 cmd 창에서 접속 테스트

새로 생성한 USER로 DBeaver 접속!

<figure><img src="https://3814826491-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJyHOwztPxBT3bLpisjCt%2Fuploads%2FDoaUjtcutEfMT7t8y8hY%2FScreenshot_4.png?alt=media&amp;token=32dbf253-c410-4e5d-97f8-49b9cbd9eb46" alt=""><figcaption></figcaption></figure>
