백엔드/Oracle

Oracle 사용자 계정 및 샘플 테이블 생성

두개의 문 2023. 6. 27. 23:06
STS에서 Oracle 연결해서 실행시키기 

 

Database Navigator창의 새 데이터베이스 연결 - ORACLE 선택 후, Next

 

Connection Type의 Host 및 Database 아래와 같이 입력

 · Host : 127.0.0.1 대신 자신의 IP 주소 입력

 · Database 

   - ORCL : 오라클 상용 서버를 의미 

      → 우리는 xe 버전이므로 xe로 입력 

Authentication의 Username 및 Password의 경우, 다운로드 받았을 때 설정한대로 입력 

 · Username : system

 · Password  : pass 

Test Connection 후, 제대로 연결된 경우 Finish 

이제 생성된 계정의 이름을 바꿔주자 

해당 계정 오른쪽 클릭 - 이름변경 : Oracle - system

 

SQL 편집기 열어 테스트해보자

 

 

 

 테이블 스페이스 만들기

CREATE tablespace webdb datafile 'webdb1.dbf' SIZE 2048m;

 : 아래 경로에서 webdb1.dbf 파일 확인 가능 

 

 

 

▷ 이전 오라클과 호환성 확보 

ALTER SESSION SET "_ORACLE_SCRIPT" = TRUE;                     // TRUE로 설정 시, 사용자 계정 생성 가능 

 

 

▷ webuser 생성 

CREATE USER webuser                                     // Username 설정 
               IDENTIFIED BY webuser                     // Password 설정 
               DEFAULT tablespace webdb              // USER 스키마를 위한 기본 테이블스페이스를 지정 
               TEMPORARY tablespace temp;         // USER의 임시 테이블스페이스의 영역을 할당 

 ➊ 임시 테이블스페이스를 지정해 주지 않을 경우, 시스템 테이블스페이스가 기본으로 지정됨

   하지만, 시스템 테이블스페이스에 단편화가 발생할 수 있으므로 USER를 생성할때 임시테이블스페이스를 따로 지정해주는 것을 권장 

 ❷ DEFAULT TABLESPACE도 USER를 생성할때 지정해 주지 않으면 기본적으로 시스템 테이블스페이스가 지정

   하지만 USER를 생성할때 DEFAULT TABLESPACE를 지정을 해서 USER가 소유한 데이터와 객체들의 저장 공간을 별도로 관리를 해야 함 

 ❸ 시스템 테이블스페이스는 본래의 목적(모든 데이터 사전 정보와, 저장 프로시저, 패키지, 데이터베이스 트리거등을 저장)을 위해서만 사용되어져야 하지 일반USER의 데이터 저장용으로 사용 되어서는 안된다.

 

 ❹ 테이블스페이스란?

  - 오라클 서버가 데이터를 저장하는 논리적인 구조

  - 테이블스페이스는 하나 또는 여러 개의 데이터 파일로 구성되는 논리적인 데이터 저장구조

 

[ 출처 ] http://www.gurubee.net/lecture/1005

  

 

 

▷ 사용자에게 권한 부여하기 

GRANT CONNECT, resource, dba TO webuser;

 ➊ CONNECT : 기본적으로 DB에 접속할 수 있는 권한으로 CREATE SESSION이 들어있음

 ❷ RESOURCE 

   - DB의 테이블이나 뷰 등을 생성하고 삭제, 변경할 수 있고, 프로시져나 트리거와 같은 PL/SQL을 사용할 수 있는 권한 

   - CREATE TRIGGER, CREATE SEQUENCE, CREATE TYPE, CREATE PROCEDURE, CREATE CLUSTER, CREATE OPERATOR, CREATE INDEXTYPE, CREATE TABLE 등

 ❸ DBA 

   - 모든 DB의 권한을 가지고 있음 

   - 따라서 DBA권한을 DB 관리자에게만 부여해야 함 

 

[ 출처 ] https://m.blog.naver.com/kjhfreedom21/110085207110

 

 

 

새로운 webuser 계정 연결 : 위에 연결방식과 동일 ( UserName과 Password만 위에서 설정한대로 webuser로 입력, 이하 동일 )

새 SQL 편집기 열어서 테이블 생성해보자

 

 

 

▷ 'BOARD' 테이블 생성하기 

CREATE Table BOARD(
         board_no NUMBER NOT NULL,
         title varchar2(200) NOT NULL,
         content varchar2(2000) NOT NULL,
         writer varchar2(50) NOT NULL,
         reg_date date
);

 - CHAR : 고정형 ( 고정적일 때 사용 )

    VARCHAR : 가변형 ( 변화가 있는 컬럼에 대해 사용 ) 

 - Oracle에서는 VARCHAR 보다 VARCHA2를 쓰는 것을 권장한다고 함 ( 이유는 아직 모르겠다  )

 

 

 

 

▷ 테이블의 제약 조건 변경하기 : ALTER문으로 PRIMARY KEY 설정

ALTER TABLE BOARD
            ADD CONSTRAINT pk_board             // pk_board : 제약조건 이름 
            PRIMARY KEY (board_no);                  // board_no : 필드명 

 

 

▷ 일련번호 생성객체 만들기 ( 3글자_테이블명)

CREATE SEQUENCE seq_board;

 - Oracle의 경우, Auto_Increment 명령어가 없음 

    → 이 기능을 사용하기 위해서는 Auto_Increment (인서트 자동증가) 시퀀스를 생성해야 함 

 

 

▷ 샘플 데이터 추가해보기 

INSERT INTO board (board_no, title, content, writer, REG_DATE)
          VALUES (seq_board.nextVal, '오라클입니다.', '오라클데이터베이스', 'oracle', sysdate);

 

'백엔드 > Oracle' 카테고리의 다른 글

Oracle : SQL - 내장 함수  (0) 2023.07.07
Oracle : SQL ( SELECT -2 )  (0) 2023.07.06
Oracle : SQL ( SELECT - 1 )  (0) 2023.07.05
45 - SQL : DML  (0) 2023.06.30
44 - Oracle : SQL 기본  (0) 2023.06.29