본문 바로가기

데이터베이스 DataBase

chapter 09 데이터베이스 보안과 관리

DBA : Database Administrator의 약자로 데이터베이스를 관리하는 사람을 뜻한다. DBA는 기본적으로 데이터베이스 구축부터 운영까지 데이터베이스 시스템의 이상 유무를 점검하고 유지보수를 하여 시스템에 문제가 발생했을 때 신속하게 대처한다. DBA는 운영하고 있는 DBMS의 세부적인 사항까지 정확하게 알고 있어야 한다. 데이터베이스 관리를 위해 필요한 일반적인 업무로는 서비스 관리, 점검 및 모니터링, 장애 대처, 백업과 복원, 사용자 관리 및 권한 관리, 시스템 데이터베이스 관리, 사용자 데이터베이스 관리, 데이터베이스 저장 공간 관리, 인덱스 관리가 있다. DBA는 데이터베이스 시스템이 문제없이 동작할 수 있도록 관리해야 하고 문제가 발생했을 때 신속하고 적절하게 대응해야 한다.

 

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

 

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

 

DROP USER : 사용자를 제거할 때 사용하는 명령이다.

 

DCL : Data Control Language의 약자로 소유한 개체에 대한 사용 권한을 관리하기 위한 명령이다. 권한을 허가해주는 GRANT 문과 권한을 취소하는 REVOKE 문이 있다.

 

GRANTE : 테이블, 뷰, 스칼라 함수, 저장 프로시저와 같은 객체를 생성한 소유자가 대상 객체에 대한 권한을 다른 사용자에게 허가하는 명령이다. 줄 수 있는 권한으론 SELECT, UPDATE 등 각 개체 별로 다르다. WITH GRANT OPTION을 이용해 권한을 부여받은 사용자가 다른 사용자에 권한을 다시 줄 수 있다.

 

REVOKE : GRANT 문으로 허가한 권한을 취소, 회수하는 명령이다. 권한을 부여한 사용자는 부여한 권한의 범위 내에서 권한을 취소할 수 있다. WITH GRANT OPTION의 회수를 위해 'CASCADE' 옵션을 사용한다.

 

ROLE : 데이터베이스 객체에 대한 권한을 모아둔 집합으로 개별 사용자 단위로 객체에 권한을 부여할 수 있지만 역할(ROLE)을 부여하고 각 개체에 대한 권한을 업무에 맞게 부여하면 사용자만 롤 속에 등록하면 완료된다. 롤을 생성하는 명령은 CREATE ROLE이고 제거하는 명령은 DROP ROLE 이다. 롤을 처음 생성한 후에는 필요한 권한을 GRANT 문으로 부여해야 한다. 롤에 사용자를 추가하는 문은 EXEC sp_addrolemember 이다. 롤에서 사용자를 제거하는 명령은 EXEC sp_droprolemember이다. 정리하면 롤을 생성하면 만들어진 롤에 권한을 부여하고 여기에 사용자를 추가해야 한다. 롤을 제거할 경우에는 롤에 등록된 사용자를 모두 제거하고 롤을 삭제한다.

 

백업 : 예상하지 못한 장애에 대비하여 데이터베이스를 복제하여 보관하는 작업.

 

복원 : 장애가 발생하여 운영 중인 데이터에 손상이 발생했을 때 기존에 복사해 둔 백업 파일을 사용하여 원래대로 되돌려 놓는 작업을 말한다.

 

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

 

대량 로그 복구 모델 : 전체 복구 모델과 비슷하지만 모든 작업에 대해 로그를 기록하지는 않는다. 로그 파일에는 INSERT, UPDATE 작업만 기록하며, SELECT INTO나 CREATE INDEX는 발생된 사실만 기록한다.

 

단순 복구 모델 : 전체 복구 모델과 대량 로그 복구 모델과 달리 로그 파일을 기록하지 않는다. 로그 파일을 기록하지 않으므로 마지막에 백업을 해둔 데이터만 복구가 가능하다.

 

전체 백업 : 데이터베이스 개체, 시스템 테이블, 데이터 등 데이터베이스 전체를 백업한다. 전체 복구, 대량 로그 복구, 단순 복구 모델에서 모두 사용 가능하다. 전체 백업은 최초에 데이터베이스를 생성하였을 때나 데이터베이스에 변경이 있을 때 수행하는 것이 좋다. 복원 시 전체 백업을 이용하면 전체 데이터를 복원한다.

 

차등 백업 : 전체 백업을 수행한 이후 변경된 데이터만 저장한다. 복원 시에 전체 백업을 한 첫 번째 백업 파일과 마지막 백업 파일만을 사용해 복구한다.

 

트랜잭션 로그 백업 : 데이터베이스에서 수행한 작업을 기록하고 있는 로그 파일을 저장하는 방법이다. 로그 파일은 데이터의 입력, 수정, 삭제 등에 관련된 질의를 순서대로 기록하고 있다. 백업은 최초에 전체 백업을 수행한 후 로그 백업을 수행한다. 로그 백업이 수행되면 로그 기록은 비워진다. 로그만 저장하므로 빠르게 수행할 수 있으나 복구 시 많은 시간이 소요된다. 복원 시에는 전체 백업을 수행한 최초 파일과 두 번째, 세 번째 로그가 모두 필요하다.

'데이터베이스 DataBase' 카테고리의 다른 글

chapter 08 트랜잭션, 동시성 제어, 회복  (0) 2013.09.09
chapter 07 정규화  (0) 2013.09.06
chapter 06 데이터 모델링  (0) 2013.09.04
chapter 05 데이터베이스 응용  (0) 2013.09.02
chapter 04 SQL 고급  (0) 2013.08.30