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 = '사용자명';
2SELECT * FROM DBA_USERS
WHERE USERNAME = '사용자명';
3SELECT * 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!