57일차

백엔드를 팝니다·2024년 8월 26일

개발자 수업

목록 보기
36/72

Oraclesql권한

-- 권한, 롤(역할)
-- 주로 DBA 가 하는 일
-- 1) 유저 만들기
-- Oracle DB 관리자 : system(sys(최고관리자))
-- 예제 1) usertest01 유저 생성
-- 패스워드 : pass1 지정
-- 사용법) CREATE USER 계정명 IDENTIFIED BY 패스워드;
CREATE USER usertest01 IDENTIFIED BY pass1;

-- 예제 2) 위에서 만든 usertest01 유저에 접속 권한을 주세요
-- 사용법) GRANT 권한명 TO 유저명;
-- CREATE SESSION 권한 : 접속 권한

GRANT CREATE SESSION TO usertest01;
-- CREATE TABLE : 테이블 생성 권한
GRANT CREATE TABLE TO usertest01;

-- 예제 3) 권한들의 집합 == ROLE(롤, 역할)
-- 1) Role(롤) 종류
-- 1-1) 접속 권한들의 집합 : CONNECT
-- 1-2) 테이블,인덱스,함수등을 사용할수 있는 권한집합 : RESOURCE
-- 1-3) View 생성 권한 : CREATE VIEW 권한
GRANT CONNECT, RESOURCE, CREATE VIEW TO usertest01;

-- 예제4) 계정(유저) 삭제
-- 사용법) DROP USER 계정명;
DROP USER usertest01;

  • 뷰(View) : 1개 이상의 테이블이나 다른 뷰를 이용해서
    -- 조회가 되게하는 가상의 테이블
    -- 목적? 1) 테이블 중에 일부컬럼이 보안이 적용되야 할경우
    -- 예) 주민번호, 패스워드, 급여
    -- 예제 1) JOB 이 SALESMAN 인 사원테이블에서
    -- ENO(사원번호), ENAME(사원명), DNO(부서번호), JOB(직위)
    -- 컬럼만 화면에 출력하는 뷰생성
    -- 사용법) CREATE OR REPLACE VIEW 뷰이름(컬럼명, 컬럼명2,...)
    -- AS
    -- SELECT 원본컬러명, 원본컬럼명2, ...
    -- FROM 테이블명
    -- WHERE 조건식;
    CREATE OR REPLACE VIEW VW_EMPLOYEE(ENO, ENAME, DNO, JOB)
    AS
    SELECT ENO, ENAME, DNO, JOB
    FROM EMPLOYEE
    WHERE JOB LIKE 'SALESMAN%';

SELECT * FROM VW_EMPLOYEE; -- 뷰 조회

-- 뷰 2 생성 : 뷰이름 뒤에 컬럼명 생략가능
CREATE OR REPLACE VIEW VW_EMPLOYEE2
AS
SELECT ENO, ENAME, DNO, JOB
FROM EMPLOYEE
WHERE JOB LIKE 'SALESMAN%';

-- 예제 3) 뷰(View) 삭제
-- 사용법) DROP VIEW 뷰이름;
DROP VIEW VW_EMPLOYEE2;

-- (참고) 뷰 수정 == 뷰 생성

OracleDB모델링

DB 모델링 기초

모델링 : DB 설계 - 건축의 설계도

실무 : 선임 개발자가 주로함, DBA등

DB 모델링 도구(툴) : er-win (s/w, 상용)

#온라인 무료 도구 : ERDCloud

DB 모델링(그림) : ER-Diagram(ERD), Entity-Relation-Diagram

설계 용어 설명: 테이블 == 엔티티

컬럼 == 속성

자료형/ 크기 == 도메인

기타 : 스키마 - DB에 생성되는 객체(테이블,인덱스)들을 총칭해서 말함

DB모델링 표기법(참고) : IE 표기법(삼발이(까마귀발)표기법) VS Barker 표기법 (우리나라 안씀)

#노란색 = 기본키 만드는 키 #파란색 = 컬럼 만드는 키

profile
백엔드 고수가 되고싶은 사람

0개의 댓글