본문 바로가기

개인공부 정리/문제풀이

0208 오라클 DB 문제풀이 - 제약 조건 및 사용자, 권한, 롤 관리

1. 제약조건 394P

Q1-1)

--Q1
CREATE TABLE DEPT_CONST (
DEPTNO NUMBER (2) CONSTRAINT DEPTCONST_DEPTNO_PK PRIMARY KEY ,
DNAME VARCHAR2 (14) CONSTRAINT DEPTCONST_DNAME_UNQ UNIQUE ,
LOC VARCHAR2 (13) CONSTRAINT DEPTCONST_LOC_NN  NOT NULL 
);
DESC DEPT_CONST;

생성한 제약조건들

Q1-2)

--Q2
--HIREDATE는 DATE로 (SYSDATE로 씀)
--참조키를 사용할 때는 데이터 테이블 (참조 행)이렇게 하기  (그냥 EMPNO로 했음)
CREATE TABLE EMP_CONST (
EMPNO NUMBER (4) CONSTRAINT  EMPCONST_EMPNO_PK PRIMARY KEY,
ENAME VARCHAR2 (10) CONSTRAINT EMPCONST_ENAME_NN NOT NULL,
JOB VARCHAR2 (9),
TEL VARCHAR2 (20) CONSTRAINT EMPCONST_TEL_UNQ UNIQUE ,
HIREDATE DATE, 
SAL NUMBER (7,2) CONSTRAINT EMPCONST_SAL_CHK CHECK (SAL BETWEEN 1000 AND 9999),
COMM NUMBER (7,2) ,
DEPTNO NUMBER (2) CONSTRAINT EMPCONST_DEPTNO_FK REFERENCES DEPT_CONST(DEPTNO)
);
DESC DEPT_CONST;

상세한 제약 조건들

Q1-3)

--Q3
--LIKE가 아닌 IN으로 사용, OWNER 적기, IN을 적을 때는 LIKE 문법을 사용하면 안됨.
--LIKE IN은 못 쓰고 OR조건을 쓰면 여러개를 쓸 수 있다. (하지만 IN으로 묶어주는게 편하다.
SELECT OWNER, CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME
FROM USER_CONSTRAINTS
WHERE TABLE_NAME IN ('EMP_CONST','DEPT_CONST');

데이터 사전 뷰로 확인

2. 사용자, 권한, 롤 관리 416P 

Q1)

--416P
--Q1. // 계정 생성 및 접속 확인
--계정 생성 및 비밀번호 지정
CONN system/oracle
CREATE USER PREV_HW
IDENTIFIED BY ORCL;
--접속 권한 부여 및 접속 확인
GRANT CREATE SESSION TO PREV_HW;
CONN PREV_HW/ORCL;

과정 및 결과 값

질문 1 : 1줄 표기법은 없는건지?

답변 1 : 찾아봐야 함 

 

질문 2 : 권한 부여를 할 때 테이블명에 계정명을 명시해야 하는지?

EX) GRANT SELECT ON SCOTT.EMP TO PREV_HW;

답변 2 : 다른 계정으로 로그인하면 명시해야 하지만 같은 계정이라면 명시할 필요가 없다.

EX) GRANT SELECT ON EMP TO PREV_HW;

 

 

Q2)

--Q2. // 권한 부여 및 확인
--1줄 표기법은 안되는건가 -> 찾아보기
CONN scott/tiger
GRANT SELECT ON EMP TO PREV_HW;
GRANT SELECT ON DEPT TO PREV_HW;
GRANT SELECT ON SALGRADE TO PREV_HW;

CONN PREV_HW/ORCL
SELECT * FROM SCOTT.EMP;
SELECT * FROM SCOTT.DEPT;
SELECT * FROM SCOTT.SALGRADE;

과정 및 결과 값 1 (SCOTT 계정)
SCOTT,EMP 실행 값
SCOTT.SALGRADE 실행 값

Q3)

--Q3 // 권한 취소 및 PREV_HW의 SALGRADE 확인
CONN scott/tiger
REVOKE SELECT, SELECT ON EMP FROM PREV_HW;
REVOKE SELECT, SELECT ON DEPT FROM PREV_HW;
REVOKE SELECT, SELECT ON SALGRADE FROM PREV_HW;

CONN PREV_HW/ORCL;
SELECT * FROM SCOTT.SALGRADE;

권한 취소된 값 및 SALGRADE 확인까지

 

728x90
반응형
LIST