-
[한기교] SQL 활용 필기(14) - 사용자 관리비전공자 공부일기/:: DB - SQL 2020. 5. 5. 11:49
< 보안 >
ㅁ 보안
: 불법적인 데이터 폭로, 변경, 파괴로부터 데이터베이스를 보호하는 것
ㅁ 보안에 대한 통제
1) 법적, 윤리적 통제
--- 심리적 보안
2) 행정, 관리적 통제
--- 오용을 탐지하고 방지
3) 물리적 통제
--- 적극적, 물리적 보안으로 위반을 예방, 탐지
4) 기술적 통제
--- 하드웨어 통제
--- 소프트웨어 통제
--- 데이터베이스 통제 -> DBMS 보안 서브 시스템 -> 접근 제어
ㅁ 접근 제어
: 권한이 부여되지 않은 데이터의 검색이나 변경을 방지
1) 직접 접근 제어
- 사용자 신분증 확인(ID)
- 신분증 본인 확인을 위한 인증(PASSWORD)
- 요청 데이터 객체에 대한 요청 연산 권한(권한 부여)
2) 간접 접근 제어
- 한 장소에서 다른 장소로의 데이터 흐름 제어
- 개인의 비밀 데이터로부터 작성된 통계정보에 대한 추론 제어
- 전송이나 저장 데이터의 암호화 시스템 작동과 사용자 상호작용의 감시
ㅁ 접근 제어 구조
- 신분증:
--- 지문, 성문, ID
- 인증:
--- 권한 부여 테이블 ---> 사용자, 접근 가능한 데이터와 연산
--- 데이터베이스 정보
--- 요구되는 연산 ---> 메인 메모리에 있는 권한 부여 테이블 / 사용자 활동 로깅
ㅁ 권한 부여 규정
- DCL로 명세
- 명세된 규정은 데이터 딕셔너리(Data Dictionary)에서 관리
< 권한 부여 >
ㅁ 뷰 기반 기법
: 뷰를 이용한 권한 부여
- 특정 뷰를 대하여 특정 사용자만 보도록 지정
- 권한이 없는 사용자로부터 민감한 데이터를 은닉할 수 있음
- 릴레이션의 수직적/수평적 서브셋 제한
ㅁ 뷰 기반 기법의 문제점
- 튜플 삽입의 제약 (뷰의 제약조건을 무시하는 튜플삽입 가능)
- 알려진 값의 NULL값
ㅁ GRANT / REVOKE 기법
: 특정 데이터와 연산을 특정 사용자만 수행할 수 있도록 권한 부여하는 DCL문
- GRANT문: 자신에게 허용된 권한을 다른 사용자에게 부여하는 구문
- REVOKE문: 다른 사용자에게 허용한 권한을 철회하는 구문
- DENY문: 다른 사용자에게 특정 권한을 불허하는 구문
ㅁ GRANT문
GRANT [권한|ALL] ON 데이터객체 TO 사용자
* 데이터 객체가 TABLE 또는 VIEW 일 경우
- 권한: SELECT, INSERT, UPDATE, DELETE, REFERENCE 등
* 데이터객체가 DB일 경우
- 권한: CREATE [DB, TABLE, VIEW] 등의 권한
- 주의점: DROP 권한은 일반적으로 생성자(주인)만 가짐
- ALL: 모든 권한
ㅁ REVOKE / DENY 구문
REVOKE 권한 ON 데이터객체 TO 사용자
DENY 권한 ON 데이터객체 TO 사용자
< MS-SQL에서의 권한 부여 >
ㅁ 인증모드
- MS-SQL은 인증과 권한 부여가 분리되어 있음
--- 인증을 위해서는 로그인 객체가 필요 (인증: MS-SQL erver에 접속할 수 있다는 것)
--- 권한 부여를 위해서는 사용자 객체가 필요 ---> 사용자 마다 다른 권한을 가질 수 있음
ㅁ 윈도우 인증
- 별도의 ID나 비밀번호 없이 Windows에 접속한 사용자로 MS-SQL에 연결할 수 있도록 하는 방식
ㅁ SQL-Server 인증
- 윈도우 인증과는 무관하게 SQL-sERVER에 등록된 로그인 계정으로 인증
- Windows 운영체제의 보완과는 상관없이 SQL-Server 계정으로 접속 가능
- 보안의 취약성으로 MS사에서는 비권장 BUT 실무에서는 더 일반적으로 사용
--- 보안이 상대적으로 취약하지만, 외부 컴퓨터에서 사용할 때 더 편리하기 때문
* 인증모드 변경
MS SQL-Server 프로그램> 관리자모드> PC아이콘 우클릭> 서버 속성>
보안> 서버 인증> SQL Server 및 Windows 인증 모드> 재부팅(필수)
ㅁ DB 사용자
- 로그인이 되었다고 MS-SQL Server가 관리하는 모든 데이터베이스들을 자동 접근할 수 있다면 심각한 보안 위협이 됨
---> 데이터베이스 별로 사용자 등록을 해야 함
---> MS-SQL은 인증과 권한 부여가 분리되어 있음
ㅁ Login 객체 생성 및 사용자 등록
- SSMS를 이용하여 user1 로그인 객체를 생생하고 MagicCorp 데이터베이스에 사용자를 등록
- SQL-Server 인증 방식으로 만듦
** 나머지 구체적인 방법은 영상 참고
'비전공자 공부일기 > :: DB - SQL' 카테고리의 다른 글
[한기교] SQL 활용 필기(16) - 트리거 (0) 2020.05.05 [한기교] SQL 활용 필기(15) - 저장 프로시저와 사용자 정의 함수(다시듣기) (0) 2020.05.05 [한기교] SQL 활용 필기(13) - 인덱스와 뷰 (0) 2020.05.05 [한기교] SQL 활용 필기(12) - 순위 계산 (0) 2020.05.05 [한기교] SQL 활용 필기(11) - 집합연산자, 집단연산자 (0) 2020.05.04