2 minute read

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 비밀번호
    • 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 관리를 위한 대부분의 시스템 권한 갖고 있음
  • 사용자 정의 롤
    • 필요에 따라 사용자가 직접 생성 가능
    • 생성 및 권한 부여
      • CREATE ROLE [롤 이름]
      • GRANT [권한/롤] TO [롤 이름]
    • 생성한 롤, 사용자에 부여
      • GRANT [롤 이름] TO [사용자 이름]
    • 취소 및 삭제
      • REVOKE [롤 이름] FROM [사용자 이름]
      • DROP ROLE [롤 이름]



자바 설치 및 DB연결 수행

  • 오라클 ‘EMP’테이블 -> 이클립스 연결
  • 관련 내용 시험 예정(내일 공지)
    • 이번주 금요일까지 제출!

dbConnection





다음 강의 준비






nice!

Updated: