IT CookBook, SQL Server로 배우는 데이터베이스 개론과...

43
IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습 [강의교안 이용 안내] 본 강의교안의 저작권은 한빛아카데미㈜에 있습니다. 이 자료를 무단으로 전제하거나 배포할 경우 저작권법 136조에 의거하여 최고 5년 이하의 징역 또는 5천만원 이하의 벌금에 처할 수 있고 이를 병과(倂科)할 수도 있습니다.

Transcript of IT CookBook, SQL Server로 배우는 데이터베이스 개론과...

Page 1: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습

[강의교안 이용 안내]

• 본 강의교안의 저작권은 한빛아카데미㈜에 있습니다.

• 이 자료를 무단으로 전제하거나 배포할 경우 저작권법 136조에 의거하여 최고 5년 이하의 징역 또는 5천만원 이하의 벌금에 처할 수

있고 이를 병과(倂科)할 수도 있습니다.

Page 2: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

SQL Server로 배우는 데이터베이스 개론과 실습

Chapter9.

데이터베이스 보안과 관리

Page 3: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

1. 데이터베이스 관리의 개요

2. 보안과 권한

3. 백업과 복원

Page 4: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

• 데이터베이스 관리의 중요성과 관리를 위해 필요한 업무에는 무엇이 있는지

알아본다.

• 데이터베이스 사용자에게 권한을 부여하여 DBMS 자체 또는 특정 데이터에

접근을 차단하는 방법을 알아본다.

• 장애 시 백업 데이터를 토대로 데이터베이스를 복원하는 방법을 알아본다.

Page 5: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

01. 데이터베이스 관리의 개요

데이터베이스 관리의 중요성

데이터베이스 관리 업무

Page 6: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

1.1 데이터베이스 관리의 중요성

운영자 판매원 고객

백본, 라우터, 스위치,허브

데이터베이스 서버

운영체제(Windows) DBMS(SQL Server)

소프트웨어

CPU RAM HDD

하드웨어

네트워크

그림 9-1 데이터베이스 운영 환경

Page 7: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

1.2 데이터베이스 관리 업무

서비스 관리

DBMS는 동시에 여러 사용자가 접근하여 데이터를 읽고 쓸 수 있기 때문에 시스템이 다운되는 일이 없도록 많은 주

의를 필요로 한다.

점검 및 모니터링

업무의 특성에 따라 다르겠지만 일반적인 데이터베이스 시스템은 365일 24시간 운영되는 경우가 많다. 이러한 시스

템의 특성상 지속적인 모니터링과 점검을 통해 시스템에 문제가 발생하기 전에 조치하는 것이 중요하다.

장애 대처

시스템 운영 중에는 불가피하게 장애가 발생할 수 있다. 이러한 장애가 발생하면 각 경우에 맞게 신속 · 정확하게 대

처해야 한다.

백업과 복원

데이터베이스에 저장된 정보가 시스템 장애나 사용자 부주의 등으로 유실되거나 삭제될 경우 그 피해는 엄청나다.

이에 대비하여 DBMS의 주요 데이터 파일은 주기적으로 백업을 받아 두어야 한다.

사용자 관리 및 권한 관리

DBMS는 사용자의 데이터 접근과 사용에 관한 권한을 지정할 수 있다. 로그인 사용자 관리와 권한 관리는 DBMS의

기본 기능이다.

Page 8: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

1.2 데이터베이스 관리 업무

시스템 데이터베이스 관리

DBMS는 DBMS의 운영정보를 담고 있는 시스템 데이터베이스를 가지고 있다. 시스템 데이터베이스가 잘못 관리

되면 DBMS가 오작동하는 등의 문제가 생길 수 있다.

사용자 데이터베이스 관리

사용자 데이터베이스는 경우에 따라 하나의 DBMS에 여러 개가 운영될 수 있다. 이와 관련하여 데이터베이스 생

성 작업 및 관리가 필요하다.

데이터베이스 저장 공간 관리

데이터베이스가 꾸준히 운영되면 당연히 데이터의 증가에 비례하여 하드디스크 공간 역시 늘어나야 한다. 만약

하드디스크가 데이터 증가에 충분히 대처하지 못한다면 데이터베이스 시스템은 데이터를 저장하지 못하고 중단

될 것이다.

인덱스 관리

인덱스는 B-tree 형태로 저장되어 균형을 유지하려고 하는데, 새로운 데이터가 입력되면 새로운 노드를 만들고

분할한다. 이 과정에서 노드의 중간에 있는 데이터가 삭제될 경우 하드디스크의 저장 공간에 단편화가 발생하여

인덱스의 성능이 떨어진다. 따라서 일정한 기준을 넘어서는 인덱스의 경우 재구축 작업을 수행하여 문제를 해결

해야 한다.

Page 9: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

02. 보안과 권한

로그인 사용자 관리

권한 관리

Page 10: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

02. 보안과 권한

DBMS는 ① 로그인 단계에서 DBMS 접근을 제한하는 로그인 사용자 관리와 ② 로

그인한 사용자별로 특정 데이터로의 접근을 제한하는 권한 관리의 기능을 제공한

다.

DBMS

사용자1

데이터베이스

사용자2

① 로그인 확인 ② 권한확인

테이블1

테이블2

허가

거부 거부

그림 9-2 데이터베이스 접근 권한

Page 11: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.1 로그인 사용자 관리

Windows 인증

윈도우 운영체제의 정보를 사용하여 계정 이름 및 암호가 유효한지 확인하는 방법이다.

SQL Server 인증

SQL Server에서 별도로 로그인 사용자를 생성하여 관리하는 방법이다. 최초 설치 시에는 관리자인 ‘sa(system

administrator)’ 계정이 생성된다. sa는 최고 관리자로 모든 개체에 대한 권한을 가지고 있다.

그림 9-3 SQL Server 인증 모드

Page 12: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.1.1 메뉴를 이용하여 신규 로그인 사용자 생성하기

새 로그인 선택

로그인 이름, 암호 입력

로그인 이름 : mdguest

암호(P) : mdpass

Page 13: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.1.1 메뉴를 이용하여 신규 로그인 사용자 생성하기

데이터베이스 사용자 설정

데이터베이스 연결 권한 설정

Page 14: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.1.1 메뉴를 이용하여 신규 로그인 사용자 생성하기

로그인 생성 확인 사용자 생성 확인

Page 15: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.1.2 T-SQL 문을 이용하여 신규 로그인 사용자 생성하기

CREATE LOGIN

로그인 이름을 생성할 때 사용하는 명령이다.

CREATE USER

사용자를 설정할 때 사용하는 명령이다.

CREATE LOGIN [로그인 이름] WITH PASSWORD = '[비밀번호]',

default_database=[대상 데이터베이스]

CREATE USER [사용자 이름] FOR LOGIN [대응되는 로그인 이름]

WITH default_schema=[기본스키마, dbo]

Page 16: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.1.2 T-SQL 문을 이용하여 신규 로그인 사용자 생성하기

질의 9-1 (sa 로그인 창) 새로운 로그인 이름 mdguest2를 생성한 후 Madang 데이터베이스

에 접근할 수 있도록 하시오.

USE master; CREATE LOGIN mdguest2 WITH PASSWORD = 'mdpass',

default_database=Madang; GO USE [Madang] GO CREATE USER mdguest2 FOR LOGIN mdguest2

WITH default_schema=dbo; GO

Page 17: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.2 권한 관리

소유한 개체에 대한 사용 권한을 관리하기 위한 명령을 DCL(Data Control

Language)이라고 한다. 대표적인 DCL 문에는 권한을 허가하기 위한 GRANT 문과

권한을 취소하기 위한 REVOKE 문이 있다.

mduser

GRANT With grant option

mdguest

GRANT

mdguest2

REVOKE

REVOKE

OWNER

권한 허가

권한 취소

그림 9-11 GRANT 문과 REVOKE 문의 관계

Page 18: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.2.1 권한 허가 - GRANT

GRANT 문은 객체를 생성한 소유자가 대상 객체에 대한 권한을 다른 사용자에게

허가하는 명령이다.

권한 : 허가할 권한을 지정한다. 객체 타입별로 지정 가능한 권한은 [표 9-1]과 같다. DELETE, INSERT, SELECT,

UPDATE, EXECUTE는 순서대로 삭제, 삽입, 조회, 수정, 실행을 할 수 있는 권한을 말한다. REFERENCES는 외래

키 제약조건을 생성하기 위해 해당 테이블을 참조할 수 있도록 허가하는 권한이다. REFERENCES(컬럼이름)의

형태로 사용한다.

컬럼 : 사용 권한을 부여할 테이블의 열 이름을 지정한다. 꼭 괄호() 안에 표시해야 한다. 가능한 권한은

SELECT, UPDATE, REFERENCES이다. 컬럼을 지정하면 권한을 허가 받은 사용자만이 대상 테이블의 지정된 컬

럼을 조회하거나 수정할 수 있다.

객체 : 사용 권한을 부여할 객체를 지정한다. 테이블이나 뷰 등의 이름이 올 수 있다.

TO 사용자 : 권한을 부여할 사용자를 지정한다. 또한 권한의 묶음인 롤(ROLE)에 권한을 추가할 수도 있다.

PUBLIC은 모든 사용자가 사용가능하도록 공개적으로 권한을 부여한다는 의미다.

WITH GRANT OPTION : 허가받은 권한을 다른 사용자에게 다시 부여할 수 있다. 이 옵션이 없으면 권한의 재

부여는 허가하지 않는다.

GRANT 권한 [(컬럼[ ,...n ])] [ ,...n ]

[ON 객체] TO {사용자Ι롤ΙPUBLIC [ ,...n ]}

[WITH GRANT OPTION] * [ , ... n ] : 반복가능을 의미

Page 19: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.2.1 권한 허가 - GRANT

객체타입 권한

테이블 DELETE, INSERT, REFERENCES, SELECT, UPDATE

뷰 DELETE, INSERT, REFERENCES, SELECT, UPDATE

스칼라 함수 EXECUTE, REFERENCES

저장 프로시저 EXECUTE

표 9-1 객체 타입별로 지정 가능한 권한

질의 9-2 (mduser 로그인 창) mdguest에게 Book 테이블의 SELECT 권한을 부여하시오.

GRANT SELECT ON Book TO mdguest;

질의 9-3 (mduser 로그인 창) mdguest에게 Customer 테이블의 SELECT, UPDATE 권한을

WITH GRANT OPTION과 함께 부여하시오.

GRANT SELECT, UPDATE ON Customer TO mdguest WITH GRANT OPTION;

Page 20: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.2.1 권한 허가 - GRANT

질의 9-4 (mdguest 로그인 창) Book 테이블과 Customer 테이블의 SELECT 권한을

mdguest2에 부여하시오.

GRANT SELECT ON Book TO mdguest2; GRANT SELECT ON Customer TO mdguest2;

질의 9-5 (mduser 로그인 창) Orders 테이블을 모든 사용자가 SELECT할 수 있도록 권한을

부여하시오.

GRANT SELECT ON Orders TO PUBLIC;

Page 21: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.2.2 권한 취소 - REVOKE

REVOKE 문은 GRANT 문으로 허가한 권한을 취소, 회수하는 명령이다.

명령문의 주요 인수들은 GRANT 문과 같은데, 몇 가지 다른점이 있다. GRANT 문

이 권한 부여를 위해 ‘TO 사용자’를 표기하였다면, REVOKE 문은 권한 취소를 위해

‘FROM 사용자’를 표기한다. 또한 권한을 재부여하는 WITH GRANT OPTION의 회

수를 위해 ‘CASCADE’ 옵션을 사용한다. CASCADE는 사용자가 다른 사용자에게 부

여한 권한까지 연쇄적으로 취소하라는 의미로, 사전에 주의 깊게 확인하고 사용해

야 한다.

REVOKE 권한 [(컬럼[ ,...n ])] [ ,...n ]

[ON 객체] FROM { 사용자Ι롤ΙPUBLIC [ ,...n ]}

[CASCADE]

Page 22: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.2.2 권한 취소 - REVOKE

질의 9-6 (mduser 로그인 창) mdguest로부터 Book 테이블의 SELECT 권한을 취소하시오.

REVOKE SELECT ON Book FROM mdguest;

질의 9-7 (mduser 로그인 창) mdguest로부터 Customer 테이블의 SELECT 권한을 취소하시

오. 단, 처음에는 CASCADE 옵션을 사용하지 않고 REVOKE 문을 실행해보고, 다음으로

CASCADE 옵션을 추가하여 실행해본다.

REVOKE SELECT ON Customer FROM mdguest; REVOKE SELECT ON Customer FROM mdguest CASCADE;

Page 23: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.2.3 역할 - ROLE

롤(ROLE)은 데이터베이스 객체에 대한 권한을 모아둔 집합니다.

mduser

mdguest

mdguest2

Book

Orders

Customer

사용자 테이블

그림 9-12 마당서점의 사용자와 테이블 간의 권한 부여

mduser

mdguest

mdguest2

Book

Orders

Customer

사용자 테이블

그림 9-12 마당서점의 사용자와 테이블 간의 권한 부여

DBA

프로그래머

역할

Page 24: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.2.3 역할 - ROLE

롤 생성

롤 제거

롤에 사용자 추가

롤에 사용자 제거

CREATE ROLE 롤이름

DROP ROLE 롤이름

EXEC sp_addrolemember 롤이름, 사용자이름;

EXEC sp_droprolemember 롤이름, 사용자이름;

Page 25: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.2.3 역할 - ROLE

롤의 생성부터 사용자 추가까지의 단계를 정리하면 다음과 같다.

CREATE ROLE - 롤의 생성

GRANT - 만들어진 롤에 권한 부여

sp_addrolemember - 롤에 사용자 추가

롤을 제거할 경우 반대로 수행한다.

sp_droprolemember - 롤의 사용자 제거

DROP ROLE - 롤 삭제(롤에 사용자가 남아있으면 삭제가 거부됨)

질의 9-8 (sa 로그인 창) Madang DB에 programmer라는 롤을 생성하시오.

USE Madang; GO CREATE ROLE programmer;

Page 26: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.2.3 역할 - ROLE

질의 9-9 (sa 로그인 창) programmer 롤에 Book과 Orders 테이블에 대한 권한을 부여하시

오. 이때 Book 테이블에는 SELECT와 UPDATE 권한을, Orders 테이블에는 SELECT와 INSERT

권한을 부여한다.

GRANT SELECT, UPDATE ON Book TO programmer; GO GRANT SELECT, INSERT ON Orders TO programmer; GO

질의 9-10 (sa 로그인 창) programmer에 mdguest와 mdguest2 사용자를 추가하시오.

EXEC sp_addrolemember programmer, mdguest; GO EXEC sp_addrolemember programmer, mdguest2; GO

Page 27: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.2.3 역할 - ROLE

질의 9-11 (mdguest 로그인 창) Book 테이블에서 도서번호 1번을 조회(SELECT)한 후 다음

과 같이 데이터를 추가(INSERT)하시오.

SELECT * FROM Book WHERE bookid=1; INSERT INTO Book(bookid, bookname, publisher, price)

VALUES (100, '좋은책', '좋은출판사', 100);

Page 28: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

2.2.3 역할 - ROLE

질의 9-12 (sa 로그인 창) Madang DB에 programmer 롤을 삭제하시오.

USE Madang; GO EXEC sp_droprolemember programmer, mdguest; GO EXEC sp_droprolemember programmer, mdguest2; GO DROP ROLE programmer;

질의 9-13 (mdguest 로그인 창) Book 테이블에서 도서번호 1번을 조회(SELECT)해보시오.

SELECT * FROM Book WHERE bookid=1;

Page 29: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

03. 백업과 복원

복구 모델

백업의 종류

백업 및 복원 실습

Page 30: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

03. 백업과 복원

데이터베이스에서도 역시 예상하지 못한 장애에 대비하여 데이터베이스를 복제하

여 보관하는 작업을 백업(backup)이라고 한다. 복원(recovery)은 장애가 발생하여

운영 중인 데이터에 손상이 발생했을 때 기존에 복사해 둔 백업 파일을 사용하여

원래대로 되돌려 놓는 작업을 말한다.

미디어 오류

데이터베이스가 저장된 매체(일반적으로 하드디스크)의 고장이나 삭제 등으로 인해 데이터베이스 파일을 사

용하지 못하게 되는 오류를 말한다.

사용자 오류

데이터베이스는 업무의 특성에 따라 여러 부문의 사용자가 접속하여 사용한다. 이 과정에서 사용자가 데이터

를 삭제하거나 잘못된 데이터로 업데이트하는 등의 실수를 하여 데이터가 유실 · 변경될 수 있는데, 이를 사용

자 오류라고 한다.

하드웨어 장애

데이터베이스 시스템은 일종의 소프트웨어로 볼 수 있으며 이러한 소프트웨어는 물리적인 하드웨어, 즉 서버

에 의해 운영된다. 물리적인 하드웨어는 자연재해나 정전 등 여러 이유로 장애가 발생할 수 있으며, 이 경우

데이터베이스 역시 사용할 수 없게 된다.

Page 31: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

3.1 복구 모델

전체 복구 모델(Full)

데이터베이스에 장애가 발생할 경우 장애가 발생한 시점까지 복구한다. 이를 위해 모든 작업을 로그 파일에

기록한다.

대량 로그 복구 모델(Bulk-logged)

전체 복구 모델과 비슷하지만 모든 작업에 대해 로그를 기록하지는 않는다. 로그 파일에는 INSERT, UPDATE

작업만 기록하며, SELECT INTO나 CREATE INDEX는 발생된 사실만 기록한다.

단순 복구 모델(Simple)

전체 복구 모델과 대량 로그 복구 모델과 달리 로그 파일을 기록하지 않는다. 로그 파일을 기록하지 않으므로

마지막에 백업을 해둔 데이터만 복구가 가능하다.

그림 9-14 SQL Server의 복구 모델

Page 32: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

3.2 백업의 종류

Insert … 10..

10

Insert … 20..

10

20

Insert … 30..

10

20

30

트랜잭션

데이터 파일

10 입력 20 입력 30 입력 자료 입력

시간 시작 5분 10분

백업 첫 번째 두 번째 세 번째

그림 9-15 데이터 파일의 입력 순서(시간순)

Page 33: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

3.2 백업의 종류

전체 백업

데이터베이스 개체, 시스템 테이블, 데이터 등 데이터베이스 전체를 백업한다. 전체 복구, 대량 로그 복구, 단

순 복구 모델에서 모두 사용가능하다. 전체 백업은 최초에 데이터베이스를 생성하였을 때나 데이터베이스에

변경이 있을 때 수행하는 것이 좋다. 백업을 수행할 때마다 수행 시점의 모든 데이터를 백업하기 때문에 여러

번 하면 각 백업 파일에 데이터가 중복 저장된다. 또한 데이터의 양이 많을 경우 백업을 수행할 때마다 많은

시간이 소요된다.

차등 백업

차등 백업은 전체 백업을 수행한 이후 변경된 데이터만 저장한다.

트랜잭션 로그 백업

데이터베이스에서 수행한 작업을 기록하고 있는 로그 파일LDF을 저장하는 방법이다. 로그 파일은 데이터의

입력, 수정, 삭제 등에 관련된 질의를 순서대로 기록하고 있다. 백업은 최초에 전체 백업을 수행한 후 로그 백

업을 수행한다. 로그 백업이 수행되면 로그 기록은 비워진다. 로그 백업은 로그만 저장하므로 빠르게 수행할

수 있으나 복구 시 많은 시간이 소요된다. 또한 대량의 데이터 작업이 발생한 경우에는 가급적 사용하지 않는

것이 좋다.

Page 34: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

3.3.1 백업 장치 설정

백업 장치로 사용할 폴더 생성

백업 장치 설정

Page 35: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

3.3.1 백업 장치 설정

백업 장치 생성

백업 장치 확인

Page 36: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

3.3.2 백업

백업 실행 전체 백업 수행

Page 37: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

3.3.2 백업

백업 완료 백업 파일 확인

Page 38: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

3.3.3 복원

Orders 테이블 삭제

Page 39: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

3.3.3 복원

복원 실행

Page 40: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

3.3.3 복원

전체 복원 수행

복원 완료

Page 41: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

3.3.3 복원

Orders 테이블 복원 확인

Page 42: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

요약

1. DBA

2. DCL

3. GRANT 문

4. WITH GRANT OPTION

5. REVOKE 문

6. 롤(ROLE, 역할)

7. 백업

8. 복원

9. 백업의 종류

Page 43: IT CookBook, SQL Server로 배우는 데이터베이스 개론과 실습dblab.duksung.ac.kr/mssql/예제소스/9장_데이터베이스 보안과 관리-2013년... · 데이터베이스

SQL Server로 배우는 데이터베이스 개론과 실습