Sequence, View, Role

박성진·2023년 3월 2일
0

Database

목록 보기
7/7

Sequence란?

  • 테이블 내에서 PK가 유일한 값을 갖도록 자동으로 지정해주는 객체
  • 사용자가 직접 기본키의 값을 생성해 등록하면 중복 발생 가능 → PK의 중복값을 방지하기 위해 사용

시퀀스 작성 방법:

CREATE SEQUENCE 시퀀스명
START WITH [시작값]
INCREMENT BY [증가값]
MINVALUE [최소값]
MAXVALUE [최대값];

예) emp_ex 테이블의 empno 컬럼 값을 처리하기 위한 시퀀스 생성

CREATE SEQUENCE emp_ex_seq
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 99999;

CURRVAL

시퀀스의 현재 값 확인

SELECT 시퀀스명.CURRVAL FROM dual;

💡 무조건 NEXTVAL 한번 실행 한 다음에 해야한다

NEXTVAL

시퀀스의 다음 값 확인

SELECT 시퀀스명.NEXTVAL FROM dual;

뷰 (View)

존재하지 않는 가상 테이블

뷰 작성 방법:

CREATE VIEW 뷰명 [(컬럼명...)]
AS
SELECT 문;

뷰를 사용하는 이유?

  1. 복잡한 SELECT문을 자주 사용해야 할 경우
  2. 조회 속도를 높이기 위해

뷰 생성 전 권한 부여

GRANT create view TO 사용자계정;

뷰 제거

DROP VIEW 뷰이름;

데이터 무결성

무결성이란 정확성을 유지하는 것이다

  • 데이터 무결성 제약조건
    • 테이블에 부적절한 데이터 입력 방지하기 위해 테이블 생성시 각 칼럼에 적용하는 규칙

데이터 무결성 제약조건 종류

  • Primary Key 제약조건을 추가함으로써 무결성 유지

    ALTER TABLE dept MODIFY deptno number(2) primary key;

사용자 관리

  • Oracle DBMS에 접속할 수 있는 사용자 계정 추가

    CREATE USER 사용자명 IDENTIFIED BY “비밀번호”;

    → 하지만 추가하려면 권한이 필요하다! 💡 시스템 권한을 갖고있는 관리자 계정으로 접속하여 create user

사용자 권한

사용자 권한 부여:

GRANT 권한
TO 사용자명
[WITH ADMIN OPTION];

💡 WITH ADMIN OPTION : 해당 권한을 다를 사용자에게도 부여할 수 있는 권한 도 함께 부여
  • 하지만 아직도 안끝남

조회 권한 부여:

GRANT 권한
ON 객체명
TO 사용자;

사용자 권한 회수:

REVOKE select
ON 스키마명.객체명
FROM user00;

스키마 (Schema)

  • 객체를 소유한 사용자명 → 테이블 구조~ 라고 알고있으면 된다
  • 자신 소유가 아닌 객체를 사용하는 경우 반드시 스키마 지정 필요

롤 (Role)

오라클에서 여러 권한을 묶어 놓은 것

→ 개별 권한을 각각 부여하는 것이 번거로움 때문에

CONNECT

  • DB접속에 관련된 권한

    CREATE SESSION, CREATE TABLE, CREATE VIEW, …

RESOURCE

  • 객체(테이블, 뷰, 인덱스)를 생성할 수 있는 권한

    CREATE PROCEDURE, CREATE TABLE, CREATE VIEW, …

롤 권한 부여/회수

GRANT connect, resource TO user00;

REVOKE connect, resource TO user00;

profile
개발자가 되기까지

0개의 댓글