ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [한기교] 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 인증 방식으로 만듦

     

    ** 나머지 구체적인 방법은 영상 참고

    댓글

coding wanee