제 23 장 오라클에서 보안 기능.

Slides:



Advertisements
Similar presentations
오라클 백업과 복구.
Advertisements

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
Youngmin Jung JOSSO 설치 Youngmin Jung
능력단위명 : 데이터베이스 구현( _14v2) 대분류 중분류 소분류 세분류 정보통신(20) 정보기술(01)
소리가 작으면 이어폰 사용 권장!.
오라클 입문.
You YOungseok 데이터베이스 테이블 및 인덱스 You YOungseok.
Database Laboratory, Hong Ik University
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
데이터 베이스 설계 및 실습 #1 - 오라클 설치 및 SQL 기본.
Sep Youn-Hee Han 웹서비스 컴퓨팅 수업을 위한 코딩 환경 준비 Sep Youn-Hee Han
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
10장. 데이터베이스 보안과 권한 관리 데이터베이스 보안과 권한 관리
데이터베이스 담당교수 신정식 Chapter 4 SQL(1).
12장 데이터 읽기 일관성과 락.
6장 Mysql 명령어 한빛미디어(주).
MySQL 및 Workbench 설치 데이터 베이스.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Chapter 01 데이터베이스 시스템.
kHS 데이터베이스 테이블 및 인덱스 kHS.
SQL*PLUS.
11 테이블 관리와 데이터 딕셔너리 데이터베이스 응용 프로젝트 개발 테이블 구조 변경 데이터 딕셔너리.
3장. 데이터베이스 구축의 전체 과정 미리 실습하기
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
5장 Mysql 데이터베이스 한빛미디어(주).
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
4-1장. MySQL 제13장.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
DB Backup/Recovery EXPORT / IMPORT.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
MYSQL 설치 SQL언어 SQL언어의 활용 웹과 SQL언어와의 연동
14 SQLite DB 활용 B A S I C 1 4_ 고객 등록과 조회 L A B 1 4_ 수정과 삭제를 포함하는 고객관리시스템 Advanced LAB 14_ 탭 메뉴의 고객관리시스템.
KHS JDBC Programming 4 KHS
YOU Youngseok 트랜잭션(Transaction) YOU Youngseok
5장 Mysql 데이터베이스 한빛미디어(주).
KIM HEESANG PL/SQL 2 KIM HEESANG
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
You YoungSEok Oracle 설치 You YoungSEok
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
JDBC Lecture 004 By MINIO.
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
3장. SQL Server 2008 전체 운영 실습 및 DB와 프로그램의 연동
View(뷰) 1 가상 테이블(Virtual Relation)
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
테이블 만들기 실습 목표 입력할 tableDB <실습1> SSMS에서 테이블 생성
15 사용자 권한 제어 데이터베이스 보안 권한 롤 동의어.
기말 프로젝트 계획 MVC 패턴 기반 웹 애플리케이션 개발 프로젝트명 : 팀명 : 팀원 :
데이터 베이스 DB2 관계형 데이터 모델 권준영.
CHAP 21. 전화, SMS, 주소록.
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
문성우 SQL 실습 Part Ⅰ 문성우.
10 데이터 조작어 데이터 조작어 데이터 입력 데이터 수정 데이터 삭제 MERGE 트랜잭션 관리 시퀀스.
오라클 11g 보안.
14 뷰(View) 뷰의 개념 뷰 관리.
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
Chapter 10 데이터 검색1.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
7장 테이블 조인하기.
Mariadb 트랜잭션과 동시성 제어 장종원
14 뷰(View) 뷰의 개념 뷰 관리.
 6장. SQL 쿼리.
11장. 보안과 권한 관리 보안 권한 관리. 11장. 보안과 권한 관리 보안 권한 관리.
Ⅰ. 데이터베이스 정의 Ⅱ. MS SQL 서버 Ⅲ. 데이터베이스 인터페이스
Presentation transcript:

제 23 장 오라클에서 보안 기능

보안과 권한 DBMS는 ① 로그인 단계에서 DBMS 접근을 제한하는 로그인 사용자 관리 ② 로그인한 사용자별로 특정 데이터로의 접근을 제한하는 권한 관리의 기능 제공 DBMS 데이터베이스 사용자1 테이블1 허가 사용자2 거부 테이블2 거부 ① 로그인 확인 ② 권한확인 그림 9-2 데이터베이스 접근 권한

1. 테이블스페이스와 로그인 사용자 관리 테이블스페이스 생성하기 테이블스페이스 : 오라클에서 데이터를 저장할 때 사용하는 논리적 저장공간(하드디스크에서는 실제 여러 개의 물리적인 데이터 파일로 구성될 수 있음). 오라클 시스템 운영에 필요한 필수 정보를 담고 있음 CREATE TABLESPACE 테이블스페이스명 DATAFILE ‘저장될 경로 및 사용할 파일명’ SIZE 저장공간 질의 9-1 (system 계정) 10M의 용량의 테이블스페이스 md_tbs, mb_test를 C:\madang\oradata 폴더에 생성하시오. 이때 데이터 파일 이름은 각각 md_tbs_data01.dbf, md_test_data01.dbf로 한다(폴더 가 없으면 생성 후 진행). CREATE TABLESPACE md_tbs DATAFILE 'C:\madang\oradata\md_tbs_data01.dbf' SIZE 10M; CREATE TABLESPACE md_test DATAFILE 'C:\madang\oradata\md_test_data01.dbf'

1. 테이블스페이스와 로그인 사용자 관리 테이블스페이스 삭제하기 DROP TABLESPACE 테이블스페이스이름 [INCLUDING CONTENTS [AND DATAFILES] [CASCADE CONSTRAINTS]]; 질의 9-2 (system 계정) md_test 테이블스페이스를 데이터 파일까지 포함하여 모두 삭제하라. DROP TABLESPACE md_test INCLUDING CONTENTS AND DATAFILES;

1.2 신규 로그인 사용자 계정 생성하기 사용자 계정 생성하기 사용자 계정 설정 변경하기 사용자 계정 삭제하기 CREATE USER [사용자이름] IDENTIFIED BY [비밀번호] DEFAULT TABLESPACE [테이블스페이스]; 사용자 계정 설정 변경하기 ALTER USER [사용자이름] IDENTIFIED BY [비밀번호]; 사용자 계정 삭제하기 DROP USER [사용자이름] CASCADE;

1.2 신규 로그인 사용자 계정 생성하기 질의 9-3 (system 계정) 새로운 사용자 mdguest를 생성하시오. 비밀번호는 mdguest, 테이블스페이스는 users로 설정한다. CREATE USER mdguest IDENTIFIED BY mdguest; 질의 9-4 (system 계정) 새로운 사용자 mdguest2를 생성하시오. 비밀번호는 mdguest2, 테이블스페이스는 앞에서 생성한 md_tbs로 설정한다. CREATE USER mdguest2 IDENTIFIED BY mdguest2 DEFAULT TABLESPACE md_tbs;

2. 권한 관리 소유한 개체에 대한 사용 권한을 관리하기 위한 명령을 DCL(Data Control Language)이라고 함 대표적 DCL 문 : 권한 허가 GRANT 문, 권한 취소 REVOKE 문 OWNER mduser GRANT With grant option REVOKE 권한 허가 mdguest GRANT REVOKE 권한 취소 mdguest2 그림 9-6 GRANT 문과 REVOKE 문의 관계

2.1 권한 허가 - GRANT 객체를 생성한 소유자가 대상 객체에 대한 권한을 다른 사용자에게 허가하는 명령 GRANT 권한 [(컬럼[ ,...n ])] [ ,...n ] [ON 객체] TO {사용자Ι롤ΙPUBLIC [ ,...n ]} [WITH GRANT OPTION] * [ , ... n ] : 반복가능을 의미 질의 9-6 (madang 계정) mdguest에게 Book 테이블의 SELECT 권한을 부여하시오. GRANT SELECT ON Book TO mdguest; 질의 9-7 (madang 계정) mdguestguest에게 Customer 테이블의 SELECT, UPDATE 권한을 WITH GRANT OPTION과 함께 부여하시오. GRANT SELECT, UPDATE ON Customer TO mdguest WITH GRANT OPTION;

2.1 권한 허가 - GRANT 질의 9-8 (mdguest 계정) madang.Book 테이블과 madang.Customer 테이블의 SELECT 권한을 mdguest2에 부여하시오. GRANT SELECT ON Book TO mdguest2; GRANT SELECT ON Customer TO mdguest2; 질의 9-9 (madang 계정) Orders 테이블을 모든 사용자가 SELECT할 수 있도록 권한을 부여하시오. GRANT SELECT ON Orders TO PUBLIC;

2.2 권한 취소 - REVOKE GRANT 문으로 허가한 권한을 취소, 회수하는 명령 GRANT 문이 권한 부여를 위해 ‘TO 사용자’를 표기하였다면, REVOKE 문은 권한 취소를 위해 ‘FROM 사용자’를 표기함 권한을 재부여하는 WITH GRANT OPTION의 회수를 위해 ‘CASCADE’ 옵션을 사용함 CASCADE는 사용자가 다른 사용자에게 부여한 권한까지 연쇄적으로 취소하라는 의미로, 사전에 주의 깊게 확인하고 사용해야 함 REVOKE 권한 [(컬럼[ ,...n ])] [ ,...n ] [ON 객체] FROM { 사용자Ι롤ΙPUBLIC [ ,...n ]} [CASCADE]

2.2 권한 취소 - REVOKE 질의 9-10 (madang 계정) mdguest에게 부여된 Book 테이블의 SELECT 권한을 취소하시오. REVOKE SELECT ON Book FROM mdguest; 질의 9-11 (madang 계정) mdguest에게 부여된 Customer 테이블의 SELECT 권한을 취소하시오. REVOKE SELECT ON Customer FROM mdguest;

2.3 역할 - ROLE 롤(ROLE): 데이터베이스 객체에 대한 권한을 모아둔 집합 그림 9-12 마당서점 사용자별 시스템 권한 그림 9-12 마당서점 사용자별 역할과 권한

2.3 역할 - ROLE 역할 생성 역할 제거 역할에 권한 부여 역할에 권한 회수 사용자에게 역할 부여 CREATE ROLE 역할 이름 DROP ROLE 역할이름 GRANT 권한 [ON 객체] TO 역할이름 REVOKE 권한 [ON 객체] FROM 역할이름; GRANT 역할이름 TO 사용자

2.3 역할 - ROLE 역할 생성부터 사용자 추가까지의 단계 역할을 제거하면 반대로 수행 CREATE ROLE - 역할 생성 GRANT - 만들어진 역할에 권한 부여 GRANT - 사용자에게 역할 부여 역할을 제거하면 반대로 수행 DROP ROLE - 역할 삭제(사용자에게 부여된 역할에 대한 권한 역시 제거됨) 질의 9-12 (system 계정) ‘programmer’라는 역할을 생성하시오. CREATE ROLE programmer;

2.3 역할 - ROLE 질의 9-13 ( system 계정) programmer 역할에 CREATE ANY TABLE과 CREATE ANY VIEW 권한을 부여하시오. GRANT CREATE ANY TABLE, CREATE ANY VIEW TO programmer; 질의 9-14 (system 계정) mdguest에 programmer 역할의 권한을 부여하시오. GRANT programmer TO mdguest;

2.3 역할 - ROLE 질의 9-11 (mdguest 계정) mdguest2 사용자에게 다음의 테이블을 생성하고 데이터를 삽입(INSERT)하시오. CREATE TABLE mdguest2.NEWTABLE ( myname VARCHAR2(40), myphone VARCHAR2(20) ); INSERT INTO mdguest2.NEWTABLE (myname, myphone) VALUES ('홍길동', '000-000-0100');

2.3 역할 - ROLE 질의 9-16 ( system 계정) programmer 역할에 mdguest2.NEWTABLE 테이블에 대한 SELECT와 INSERT 권한을 부여하시오. 그리고 (mdguset 계정) INSERT 문을 수행한 후 조회(SELECT)해 보시오. (system 계정) GRANT SELECT, INSERT ON mdguest2.NEWTABLE TO programmer; (mdguest 계정) INSERT INTO mdguest2.NEWTABLE (myname, myphone) VALUES ('홍길동', '000-000-0100'); COMMIT; SELECT * FROM mdguest2.NEWTABLE;

2.3 역할 - ROLE 질의 9-17 (system 계정) mdguest2.NEWTABLE 계정의 SELECT 권한을 회수하시오. 그리고 (mdguest 계정) mdguest2.NEWTABLE 테이블을 조회(SELECT)해 보시오. (system 계정) REVOKE SELECT ON mdguest2.NEWTABLE FROM programmer; (mdguest 계정) SELECT * FROM mdguest2.NEWTABLE;

2.3 역할 - ROLE 질의 9-18 (system 계정) programmer 역할을 제거하시오. mdguest2.NEWTABLE 역시 제거하시오 DROP ROLE programmer; DROP TABLE mdguest2.NEWTABLE;