Today I Learned-21
SQL - 6 (마무리)
- 제약조건 계속 (FOREIGN KEY, CHECK, DEFAULT)
- 사용자, 권한, 롤 관리
제약 조건 - 5. FOREIGN KEY(외부키/외래키)
- 서로 다른 테이블 간 관계를 정의하는 데 사용
    - ex. A테이블에서 PRIMARY KEY 제약조건 지정한 열 -> B테이블 특정 열에서 참조!
 
- 유의점
    - 참조 대상 테이블 = ‘부모’ // 참조하는 테이블 = ‘자식’
- 자식 테이블에서는, 부모 테이블의 참조대상 열에 없는 값은 사용 불가!
 
- 참조 데이터 삭제
    - 삭제하려는 열 값을 참조하는 데이터 먼저 삭제
- 삭제하려는 열 값을 참조하는 데이터 수정
- 현재 삭제하려는 열을 참조하는 자식 테이블의 FOREIGN KEY 제약조건 해제
 
제약 조건 - 6. CHECK
- 데이터 형태와 범위를 정함
제약 조건 - 7. DEFAULT
- 기본값을 지정
    - 제약 조건과는 별개로 특정 열에 저장할 값이 지정되지 않았을 경우
 
사용자, 권한, 롤 관리 - 1. 사용자 관리
- 사용자/권한/롤 관리의 조건
    - SYSTEM 권한으로만 수행 가능!!
 
- 오라클 데이터베이스에서의 사용자(User),
    - 데이터베이스에 접속하여 데이터를 관리하는 계정
- 업무 분할과 효율, 보안을 고려하여 여러 사용자 관리 필요
 
- 데이터베이스 스키마?
    - 오라클 데이터베이스에 접속한 사용자와 연결된 객체
- 즉, 데이터베이스에서 사용자가 생성한 모든 객체
          ex. 테이블, 뷰, 제약조건, 인덱스, 시퀀스, 동의어 … 
 
- 사용자 생성 및 접속(cmd창 -> SYS, SYSTEM으로 접속)
    - 기본문
          - ex. CREATE USER 사용자명
- IDENTIFIED BY 비밀번호
 
- ex. 
- CREATE SESSION 권한 부여(데이터베이스와 연결하기 위해)
          - GRANT CREATE SESSION TO 사용자명
 
- 생성한 사용자 접속
          - CONN 사용자명/비밀번호
 
 
- 기본문
          
- 사용자 or 사용자 소유의 객체정보 조회(cmd창 -> SYS, SYSTEM으로 접속)
    1 - SELECT * FROM ALL_USERS
- WHERE USERNAME = '사용자명';2
- SELECT * FROM DBA_USERS
- WHERE USERNAME = '사용자명';3
- SELECT * FROM DBA_OBJECTS
- WHERE OWNER = '사용자명';
 
- 패스워드 변경 (cmd창 -> SYS, SYSTEM으로 접속)
    - ALTER USER 사용자명
- IDENTIFIED BY 새로운 비밀번호 ;
 
- 사용자 삭제 (cmd창 -> SYS, SYSTEM으로 접속)
    - DROP USER 사용자명
 
- 참고!
    - ALL_TABLES : 특정 스키마에 속한 테이블 목록을 조회
- DBA뷰 : SELECT 권한이 SELECT_CATALOG_ROLE 이라는 권한에 할당
          - 이 권한은 다시 DBA 권한에 할당되어 있다
 
- USER뷰 : 자신이 만든 객체에 대한 정보만 조회할 경우 -> USER_OBJECTS 참조
 
사용자, 권한, 롤 관리 - 2. 권한 관리
- 사용자에 따라 데이터 영역, 권한을 설정
    - 데이터 안전 보장
- 시스템 권한(system privilege)과 객체 권한(object privilege)
 
- 시스템 권한
    - 사용자 생성, 정보 수정 및 삭제
- 데이터베이스 접근 및 여러 자원/객체의 생성과 관리
          교제 p.403 참고!! 
 
- 시스템 권한 부여
    - GRANT [시스템 권한] TO [사용자 이름/롤 이름/PUBLIC]
- WITH ADMIN OPTION;
- with admin option : 부여받은 권한을 다른 사용자에게 부여하는 권한
 
- 시스템 권한 취소
    - REVOKE [시스템 권한] FROM [사용자 이름/롤 이름/PUBLIC]
 
- 객체 권한
    - 특정 사용자가 생성한 테이블, 인텍스, 뷰, 시퀀스 등과 관련된 권한
 
- 객체 권한 부여
    - GRANT [객체 권한 or ALL PRIVILEGES]
- ON [스키마, 객체 이름]
- TO [사용자 이름/롤 이름/PUBLIC]
- WITH ADMIN OPTION
 
- 객체 권한 취소
    - REVOKE [객체 권한 or ALL PRIVILEGES]
- ON [스키마, 객체 이름]
- FROM [사용자 이름/롤 이름/PUBLIC]
 
사용자, 권한, 롤 관리 - 3. 롤 관리
- 롤이란,
    - 여러 종류의 권한을 묶어 놓은 그룹
- 여러 권한을 한 번에 부여/해제 -> 권한 관리 효율 UP!
 
- 사전 정의된 롤 (아래 3가지 외에도 여럿)
    - CONNECT 롤
          - DB접속을 위한 시스템 권한 묶음
- 9i 버전까지는 8가지 권한 있었지만, 10g 버전 이후부터는 ‘CREATE SESSION’만.
 
- RESOURCE 롤
          - 테이블, 시퀀스 등 여러 객체를 생성할 수 있는 시스템 권한 묶음
 
- DBA 롤
          - DB 관리를 위한 대부분의 시스템 권한 갖고 있음
 
 
- CONNECT 롤
          
- 사용자 정의 롤
    - 필요에 따라 사용자가 직접 생성 가능
- 생성 및 권한 부여
          - CREATE ROLE [롤 이름]
- GRANT [권한/롤] TO [롤 이름]
 
- 생성한 롤, 사용자에 부여
          - GRANT [롤 이름] TO [사용자 이름]
 
- 취소 및 삭제
          - REVOKE [롤 이름] FROM [사용자 이름]
- DROP ROLE [롤 이름]
 
 
자바 설치 및 DB연결 수행
- 오라클 ‘EMP’테이블 -> 이클립스 연결 
- 관련 내용 시험 예정(내일 공지)
    - 이번주 금요일까지 제출!
 
 
 
다음 강의 준비
nice!