본문 바로가기
ORACLE/관리

유저 보안 관리

by 딘스톤 2023. 9. 21.

I. 계정 관리

  1. 데이터베이스 유저 계정

  2. 미리 정의된 계정 

  3. 유저 인증 방법

     ① Password

     ② Externa

     ③ Global

  4. 관리자 인증 방법

     ① 운영 체제 보안

     ② 관리자 보안

 

II. 권한관리

  1. 시스템 권한

  2. 객체 권한

  3. ADMIN OPTION

  4. GRANT OPTION

  5. 롤 이용 시 이점

  6. 롤에 권한 할당 및 유저에게 롤 할당 

  7. 미리 정의된 롤 

  8. 보안 롤


I. 계정 관리

1. 데이터베이스 유저 계정

  • 데이터베이스에 액세스 하기 위해서는  유저가 유효한 데이터베이스 유저 계정을 지정하고 이 유저 계정에 필요한 인증을

     성공해야 합니다.

  • 유저가 일반 데이터베이스 계정을 공유하는 경우가 있는데 이 경우 운영체제와 응용프로그램은 데이터베이스에 대해

      적절한 보안을 제공해야 합니다

  •  각 계정에는 아래의 내용들이 포함됩니다

     ৹ 고유 Username 

         - Username은 30바이트를 초과하거나 특수문자를 포함할 수 없으며 문자로 시작되어야 합니다

     ৹ 인증방식 

         - 가장 일반적인 인증 방식은 암호이지만, Password, Global, External 인증 방식을 지원합니다

     ৹ 기본 테이블 스페이스 :

         - 유저가 다른 테이블 스페이스를 지정하지 않은 경우 객체를 생성하는 장소입니다.

         - 기본 테이블 스페이스가 있다고 해서 유저가 객체를 생성할 수 있는 권한이나 객체를 생성할 공간의 할당량이 있는

            것이 아니라 모두 별도로 부여되는 것입니다.

     ৹ 임시 테이블스페이스

         -  Instance가 정렬 및 임시 테이블 등의 임시 객체를 유저 대신 생성하는 위치입니다

         -  임시 테이블 스페이스는 할당량이 적용되지 않습니다

     ৹ 유저 프로파일

         -  유저에게 할당되는 리소스 및 암호 제한 집합입니다

     ৹ 초기 Consumer Group

         -  리소스 관리자가 사용합니다

     ৹ 계정 상태

         -  유저는 open 상태의 계정만 액세스 할 수 있습니다

  •  스키마는 데이터베이스 유저가 소유하는 데이터베이스 객체의 모음으로 데이터베이스의 데이터를 직접 참조하는 논리적

      구조입니다.

  •  스키마 객체에는 테이블, 뷰, 시퀀스, 내장 프로시저, 동의어, 인덱스, 클러스터 및 데이터베이스 링크가 있습니다

 

2. 미리 정의된 계정

  •  SYS 및 SYSTEM 계정에는 기본적으로 데이터베이스 관리자 롤이 부여됩니다

  •   SYS 계정은 ADMIN OPTION에 대한 모든 권한을 포함하며 데이터 딕셔너리를 소유합니다

  •  SYSDBA, SYSOPER 또는 SYSASM 권한이 부여된 유저만 Instance를 시작 및 종료할 수 있습니다

  •  SYSTEM 계정에는 SYSDBA 권한이 없고, AQ_ADMINISTRATOR_ROLE 및 MGMT_USER롤이 부여됩니다

  •  SYS 및 SYSTEM계정은 데이터베이스에서 필수 계정이며 삭제할 수 없습니다

  •  DBSNMP 계정은 Enterprise Manager의 관리 에이전트가 데이터베이스를 관리하는 데 사용됩니다

  •  SYSMAN 계정은 Enterpirse Manager 관리 작업을 수행하는 데 사용됩니다

  •  DBSNMP 또는 SYSMAN 계정에는 SYSDBA 권한이 없습니다

 

3. 유저 인증 방법

  •  유저를 생성할 때 유저에게 사용할 인증 방법을 결정해야 합니다. 

  •  유저에 대한 인증 방법은 나중에 변경할 수 있습니다

  ① Password

     ৹ 유저가 연결을 시도할 때 입력해야 하는 연관된 암호와 함께 각 유저를 생성합니다

     ৹ 암호 설정 시에는 해당 암호가 즉시 만료되도록 할 수 있으며 이렇게 하면 유저는 첫 로그인 후에 암호를 변경해야 합니다

     ৹ oracle 11g에서 생성한 모든 함호는 기본적으로 대소문자를 구분하며, 멀티바이트 문자를 포함할 수 있고 30바이트로

        제한됩니다

   ② Externa

     ৹ 데이터베이스 외부의 방법(운영 체제, kerberos, Radius)을 사용하는 인증입니다.

     ৹ Kerberos 또는 Radius의 경우에는 Advanced Security Option이 필요합니다.

     ৹ 데이터베이스는 기본 운영 체제, 네트워크 인증 서비스 또는 외부 인증 서비스를 사용하여 데이터베이스 계정에 대한

        액세스를 제한합니다.

     ৹ 운영 체제 또는 네트워크 서비스에서 허용하는 경우에는 데이터베이스 암호를 사용하여 유저를 인증할 수 있습니다

     ৹ 운영 체제 인증을 사용하려면 OS_AUTHENT_PREFIX 초기화 파라미터를 설정하고 이 접두어를 Oracle Username에 

       사용합니다.

     ৹ OS_AUTHENT_PREFIX 파라미터의 기본값은 OPS$입니다. 유저가 연결을 시도할 때 오라클 데이터베이스는 접두어가

         있는 Username을 데이터베이스에 있는 Oracle Username과 비교합니다.

   ③ Global

     ৹ Oracle Advanced Security Option으로 Global 인증을 사용하면 Oracle Internet Directory를 사용하여 유저를

         식별할 수 있습니다.

 

4. 관리자 인증 방법

   ① 운영 체제 보안

     ৹ UNIX 및 Linux에서 DBA는 기본적으로 데이터베이스 파일을 생성 및 삭제하는 데 필요한 권한을 가진 oinstall

         OS 그룹에 속합니다.

   ② 관리자 보안

     ৹ 권한이 있는 SYSDBA, SYSOPER 및 SYSASM 유저에 대한 연결은 Password file 또는 OS 권한을 사용한

         검증을 수행한 이후에만 인증됩니다

     ৹ OS 인증을 사용하는 경우 데이터베이스에서 제공되는 Username과 암호를 사용하지 않습니다

     ৹ OS 인증은 Password file이 없거나, 제공되는 Username 또는 암호가 해당 파일에 없거나, Username과

          암호가 제공되지 않는 경우에 사용됩니다

     ৹ 운영 체제를 통한 인증에 성공하면 특정 유저를 기록하지 않는 CONNECT / 연결이 적용됩니다.

 

II. 권한관리

1. 시스템 권한

     ৹ 유저는 각 시스템 권한을 사용하여 특정 데이터베이스 작업이나 특정 유형의 데이터베이스 작업을 수행할 수 있습니다

     ৹ 시스템 권한은 관리자나 권한을 관리할 수 있는 권한을 명시적으로 받은 유저가 부여할 수 있습니다

         • RESTRICTED SESSION 권한을 사용하면 데이터베이스가 제한 모드로 열려 있어도 로그인할 수 있습니다.

         • SYSDBA 및 SYSOPER 권한을 사용하면 데이터베이스에서 종료, 시작, recovery 및 다른 관리 작업을

            수행할 수 있습니다.

          SYSOPER는 유저가 기본적인 작업을 수행할 수 있지만 유저 데이터를 볼 수 있는 권한은 없습니다.

         • SYSOPER는 다음 시스템 권한을 포함합니다.

            - STARTUP 및 SHUTDOWN

            - CREATE SPFILE

            - ALTER DATABASE OPEN/MOUNT/BACKUP

            - ALTER DATABASE ARCHIVELOG

            - ALTER DATABASE RECOVER (Complete Recovery의 경우만 해당됩니다) 

            - RESTRICTED SESSION SYSDBA 시스템 권한에는 Incomplete Recovery 및 데이터베이스 삭제 권한이

              추가로 부여됩니다.

         • SYSDBA 시스템 권한을 통해 유저는 SYS 유저로 연결할 수 있습니다.

     ৹ SYSASM

            - 이 권한을 사용하면 ASM Instance를 시작, 종료 및 관리할 수 있습니다.

     ৹ DROP ANY object

            - DROP ANY 권한을 사용하면 다른 스키마 유저가 소유한 객체를 삭제할 수 있습니다.

     ৹ CREATE, MANAGE, DROP 및 ALTER TABLESPACE

            - 이러한 권한을 사용하면 테이블스페이스 속성 생성, 삭제 및 변경과 같은 테이블스페이스 관리를 수행할 수

               있습니다.

     ৹ CREATE LIBRARY

            - 오라클 데이터베이스에서는 개발자가 PL/SQL 내에서 C 라이브러리와 같은 외부 코드를 생성 및 호출할 수

               있습니다.

            - 라이브러리의 이름은 데이터베이스의 LIBRARY 객체가 지정해야 합니다.

            - CREATE LIBRARY 권한을 사용하면 유저가 PL/SQL에서 실행할 수 있는 임의 코드 라이브러리를 생성할 수

              있습니다.

     ৹ CREATE ANY DIRECTORY

            - 보안을 위해서 코드가 있는 운영 체제 디렉터리는 가상 오라클 디렉터리 객체에 연결되어야 합니다.

            - CREATE ANY DIRECTORY 권한을 사용하면 비보안 코드 객체를 호출할 수 있습니다.

            - CREATE ANY DIRECTORY 권한을 사용하면 Oracle 소프트웨어 소유자가 액세스 할 수 있는 임의의 디렉터리에

               유저가 읽기 및 쓰기 권한이 있는 디렉터리 객체를 생성할 수 있습니다. 

            - 유저가 데이터 파일, 리두 로그 및 감사(audit) 로그와 같은 데이터베이스 파일에 대해 직접 읽기/쓰기를 시도할 수

              있습니다.

     ৹ GRANT ANY OBJECT PRIVILEGE

            - 이 권한은 자신이 소유하지 않은 객체에 대해 객체 사용 권한을 부여할 수 있습니다.

     ৹ ALTER DATABASE 및 ALTER SYSTEM

            - 매우 강력한 권한으로, 데이터 파일 이름 변경 또는 버퍼캐시 비우기와 같은 데이터베이스 및 Oracle Instance 수정

              작업을 수행할 수 있습니다

 

2. 객체 권한

     ৹ 유저는 객체 권한을 사용하여 테이블, 뷰, 시퀀스, 프로시저, 함수 또는 패키지 등의 특정 객체에 대해 특정 작업을 수행할 수

        있습니다.

     ৹ 권한이 없는 유저는 자신이 소유한 객체에만 액세스 할 수 있습니다

     ৹ 객체 권한은 객체의 소유자, 관리자, 또는 객체에 대해 권한을 부여할 수 있는 권한을 명시적으로 받은 유저가 부여할 수

        있습니다. 

 

3. ADMIN OPTION

     ৹ GRANT 명령으로 직접 부여된 시스템 권한은 REVOKE SQL 문을 사용하여 취소할 수 있습니다

     ৹ 시스템 권한에 대해  ADMIN OPTION을 가진 유저는 다른 데이터베이스 유저의 권한을 취소할 수 있습니다

     ৹ ADMIN OPTION이 부여되었는지 여부에 관계없이 시스템 권한을 취소할 때는 연쇄적으로 취소되지 않습니다

 

4. GRANT OPTION

     ৹ DML 작업과 관련된 시스템 권한을 취소라 때연쇄적인 결과를 관찰할 수 있습니다

     ৹ 객체 권한 취소는 GRANT OPTION 이 제공되는 경우에도 연쇄적인 결과를 나타 냅니다

     ৹ 유저는 자신이 부여한 권한만 취소할 수 있습니다.

  

5. 롤 이용 시 이점

     ৹ 권한 관리 용이성

        - 롤을 사용하여 권한 관리를 단순화합니다.

        - 여러 유저에게 일련의 동일한 권한을 부여하는 대신 권한을 롤에 부여한 다음 이 롤을 각 유저에게 부여할 수 있습니다.

     ৹ 동적 권한 관리

        -  롤과 연관된 권한을 수정하면 그 롤을 부여받은 모든 유저는 자동으로 즉시 수정된 권한을 얻게 됩니다.

     ৹ 권한의 선택적 가용성

        -  롤을 활성화 및 비활성화하여 권한을 일시적으로 설정 및 해제할 수 있습니다. 그러면 특정 상황에서 유저의 권한을

           제어할 수 있습니다.

6. 롤에 권한 할당 및 유저에게 롤 할당 

     ৹ 각 유저에 대해 개별적으로 필요한 권한을 부여하려면 시간이 많이 걸리고 오류가 발생하기 쉽습니다

     ৹ Oracle은 롤을 통해 권한 관리를 쉽게 제어할 수 있습니다

     ৹ 롤은 유저나 다른 롤에 부여된 관련 권한의 명명된 그룹이며 데이터베이스의 권한 관리를 용이하게 하여 보안을 향상하도록

         고안되었습니다

     ৹ 롤의 특성

        - 유저와 마찬가지로 롤에도 권한을 부여하고 취소할 수 있습니다

        - 시스템 권한과 마찬가지로 롤을 유저나 다른 롤에 부여하거나 취소할 수 있습니다

        - 시스템 및 객체 권한으로 구성될 수 있습니다

        - 롤을 부여받은 각 유저에 대해 활성화 및 비활성화할 수 있습니다.

        - 롤을 활성화하려면 암호가 필요할 수 있습니다

        - 롤은 유저가 소유하지 않으면 스키마에 존재하지 않습니다.

 

7. 미리 정의된 롤

     ৹ 데이터베이스 생성 스크립트를 실행할 때 오라클 데이터베이스에 대해 여러 가지 롤이 자동으로 정의됩니다

     ৹ 보안상의 이유로 oracle 10.2.0 이후 버전부터는 CONNECT 롤에 CREATE SESSION 권한만 포함됩니다.

     ৹ 특수 기능 관리 권한을 부여하는 기타 롤은 해당 기능 설치 시 생성됩니다.

 

8. 보안 롤

     ৹ 롤은 기본적으로 활성화되어 있습니다

     ৹ 롤을 유저에게 할당하면 유저는 롤에 부여된 권한을 행사할 수 있습니다

     ৹ 롤은 기본값 이외의 값으로 설정하고 필요에 따라 활성화할 수 있습니다

     ৹ 롤은 인증을 통해 보호할 수 있습니다

     ৹ 추가 인증이 필요한 롤 생성

          - 롤에 대한 기본 인증은 None이지만 이를 설정하기 전에 추가 인증이 필요하도록 설정할 수 있습니다

     ৹ PL/SQL 프로시저를 성공적으로 실행해야만 활성화될 수 있는 보안 응용 프로그램 툴 생성

          - PL/SQL 프로시저에서는 유저의 네트워크 주소, 유저가 실행하고 있는 프로그램, 시간 또는 사용 권한 그룹의 보안을

            제대로 유지하는데 필요한 기타 요소를 검사할 수 있습니다

     ৹ Oracle Database Vault 옵션을 사용하여 손쉽게 롤 관리

          - 보안 응용 프로그램 롤이 간소화되며 기존의 롤을 보다 세부적으로 제한할 수 있습니다. 

'ORACLE > 관리' 카테고리의 다른 글

데이터베이스 유지 관리  (0) 2023.10.04
오라클 데이터베이스 감사(audit)  (0) 2023.10.02
언두 데이터 관리  (1) 2023.10.02
데이터 동시성 관리  (0) 2023.09.22
데이터베이스 저장 영역 구조 관리  (0) 2023.09.19