사용자 도구

사이트 도구


study:oracle:11g2daydba:07

Administering User Accounts and Security

About User Accounts

  1. 데이터베이스에 액세스하는 사용자에 대해 사용자 계정을 만들고 해당 데이터베이스에 대한 액세스 권한을이 계정에 부여해야합니다.
    사용자 계정은 사용자 이름으로 식별되면 다음과 같은 지정할 수 있습니다
    • 인증 방법
    • 데이터베이스 인증 비밀 번호
    • 영구 및 임시 데이터 저장소의 기본 테이블 스페이스
    • 테이블 스페이스 할당량
    • 계정 상태 (잠금 또는 잠금 해제)
    • 암호 상태 (활성 또는 비활성)
  2. 사용자 계정은 사용자 이름, 암호 및 계정의 기본 테이블 스페이스를 지정할뿐만 아니라, 다음과 같이해야합니다.
    • 계정에 적절한 시스템 권한 객체 권한과 역할을 부여합니다.
    • 사용자가 데이터베이스 개체를 만드는 경우 개체를 만들고 각 테이블 스페이스의 사용자 계정 공간 사용량이 할당량을 설정합니다.

미리 정의된 사용자 계정

데이터베이스를 설치 하는 동안 여러 개의 기본적인 사용자 계정이 자동으로 생성되게 됩니다.
모든 데이터베이스에 관리계정 SYS, SYSTEM, SYSMAN 및 DBSNMP 포함되어있습니다.
관리 계정은 고급 권한이 있는 계정이며 데이터베이스 시작 및 중지, 데이터베이스 메모리 및 저장소 관리
데이터베이스 사용자 생성 및 관리 등의 관리 작업을 수행할 권한이 있는 사용자에게만 필요합니다.

Oracle Enterprise Manager Database Control (Database Control)에 로그인 하려면 SYS SYSTEM 또는 SYSMAN 사용합니다.
관리 에이전트는 DBSNMP 계정을 사용하여 데이터베이스를 모니터링 및 관리할 수 있습니다.
Database Configuration Assistant (DBCA)에서 데이터베이스를 만들 때 이 계정의 암호를 할당합니다.
이 계정은 삭제할 수 없습니다.

데이터베이스는 샘플 스키마가 포함되어있습니다.
이것은 연결된 스키마 집합에서 공통 데이터베이스 작업에 대한 Oracle 문서 및 자료를 볼 수 있습니다.
또한 이 스키마를 사용하여 운영 데이터를 위태롭게 하지 않고 시험을 수행할 수 있습니다.

각 샘플 스키마에 연결된 사용자 계정이 있습니다. 예를 들어, hr 사용자 계정 hr 스키마를 소유합니다.
이 스키마는 인사 관리 응용 프로그램의 간단한 테이블 세트가 있습니다.
예제 스키마의 계정은 처음에 잠겨 있고 암호가 만료되어있습니다.
데이터베이스 관리자는 이 계정의 잠금을 해제하고 암호를 할당하는 책임이 있습니다.

스키마의 이해

사용자 계정을 생성하면 사용자명과 동일한 이름을 가지는 스키마도 같이 생성됩니다.
스키마 테이블 및 뷰, 트리거와 같은 데이터베이스 개체의 논리적 컨테이너입니다.
스키마 이름은 사용자 이름과 동일한 사용자가 소유하는 개체를 참조할 때 사용할 수 있습니다.
데이터베이스 객체 와 스키마 객체는 같은 의미로 사용됩니다. 사용자를 삭제하면 때 모든 스키마 개체가 제거되므로 주의 하여야 합니다
radiocom.kunsan.ac.kr_lecture_oracle_what_is_user_schema.jpg

About User Privileges and Roles

사용자 권한은 기본 수준의 데이터베이스 보안을 제공합니다.
사용자 권한은 데이터에 대한 사용자 액세스 제어 및 사용자가 확장할 수 있는 SQL 문의 종류의 제한하도록 설계되어있습니다.
사용자를 생성시에 사용자의 데이터베이스에 대한 연결, SQL의 실행 및 업데이트, 스키마 객체 만들기 권한을 부여하게 됩니다.

사용자 권한 주요 유형

  • 시스템 권한 : 시스템 권한은 사용자가 특정 작업 또는 특정 유형의 스키마 개체에 작업을 수행할 수 있도록 하는 권한입니다.
  • 객체 사용 권한 : 개체 권한은 사용자가 특정 스키마 개체에 대해 특정 작업을 수행할 수 있게 하는 권한입니다.

다양한 개체 권한이 다양한 유형의 스키마 개체에 사용할 수 있습니다.
예를 들어, EMPLOYEES 테이블에서 행을 선택 권한 또는 DEPARTMENTS 테이블에서 행을 삭제할 권한이 있습니다.

역할을 사용하면 권한 관리가 더 쉽습니다. 역할은 관련 권한의 명명된 그룹입니다.
사용자가 역할을 만들고, 역할 체계 및 개체 사용 권한을 부여하고 그 사용자에게 역할을 부여할 수 있습니다.
또한 다른 역할에 역할을 부여할 수 있습니다. 스키마 개체와 달리 역할은 모든 스키마에 포함되지 않습니다.
표 7-1에 Oracle Database에서 미리 정의된 널리 사용되는 3 개의 목록을 보여줍니다.
이 3 개의 역할은 사용자를 만들 때, 또는 만든 후 언제든지 설정할 수 있습니다.
표 7-1 Oracle Database 미리 정의된 역할

역할이름 설명
CONNECT 사용자 데이터베이스에 대한 연결을 허용합니다.
이 역할에 데이터베이스 액세스가 필요한 사용자 또는 응용 프로그램에 부여합니다.
Database Control을 사용하여 사용자를 만들면 이 목록은 자동으로 사용자에게 부여됩니다.
RESOURCE 사용자와 연결된 스키마에서 특정 유형의 스키마 객체 생성, 수정 및 삭제 가능합니다.
이 역할을 스키마 개체를 작성해야 하는 개발자 또는 다른 사용자에게만 부여합니다.
이 역할은 객체를 생성하는 시스템 권한의 하위 집합을 부여합니다.
DBA 사용자 생성 및 권한 부여, 롤 생성 및 부여, 각 스키마에서 스키마 객체 생성, 수정 및 삭제 등
대부분의 관리 기능을 사용자가 실행하는 것을 허용합니다.
이것은 모든 시스템 권한을 부여하지만 데이터베이스 인스턴스 시작 및 중지 권한은 포함되지 않습니다.
이 권한은 기본적으로 SYS SYSTEM 사용자에게 부여됩니다.

About Administrative Accounts and Privileges

관리 계정 및 관리 권한은 사용자 관리, 데이터베이스 메모리 관리, 데이터베이스 시작 및 중지와 같은 관리 기능을 수행할 수 있습니다.

SYS 와 SYSTEM 사용자

다음 관리자 계정은 Oracle Database를 설치하는 동안 자동으로 만들어집니다. 설치할 때 적용된 암호를 사용하여 만들 수 있습니다.
모두 자동으로 DBA 역할이 부여됩니다.

SYS
이 계정은 모든 관리 기능을 수행할 수 있습니다. 
데이터베이스의 데이터 사전의 모든 테이블 및 뷰 는 SYS 스키마에 저장됩니다. 
이 기본 테이블과 뷰는 Oracle Database를 조작하는 데 중요합니다. 
데이터 사전의 무결성을 유지하려면 SYS 스키마의 테이블을 데이터베이스 프로세스에 의해서만 조작되도록 하여야 합니다.
모든 사용자 혹은 데이터베이스 관리자 일지라도 절대로 변경하지 않도록 합니다. 
또한 SYS 스키마에 테이블을 생성하지 마십시오. 
SYS 사용자는 SYSDBA 권한이 부여되어 백업 및 복구와 같은 높은 수준의 관리 작업을 수행할 수 있습니다.
SYSTEM
이 계정은 다음 예외를 제외한 모든 관리 기능을 수행합니다. 
  * 백업 및 복구
  * 데이터베이스 업그레이드
이 계정을 사용하여 일상적인 관리 작업을 수행할 수 있으나, 
Oracle Database를 관리하는 사용자 계정을 생성하여 데이터베이스 작업을 모니터링 할 수 있도록 하는 것을 추천합니다.

SYSDBA 와 SYSOPER 시스템 권한

SYSDBA SYSOPER 데이터베이스 생성, 시작, 중지, 백업 및 복구와 같은 고급 관리 작업을 수행하는 데 필요한 관리 권한입니다.
SYSDBA 시스템 권한은 모든 권한을 가진 데이터베이스 관리자, SYSOPER 시스템 권한은 기본적인 운영 작업을 수행하지만
사용자 데이터를 참조할 권한이 없는 사용자를 위한 것입니다.

SYSDBA, SYSOPER 권한은 데이터베이스가 오픈 되어있지 않은 경우에도 데이터베이스 인스턴스에 액세스할 수 있는 시스템 권한입니다.
이러한 권한의 통제는 철저하게 데이터베이스 외부에서 실행됩니다.
이 권한 중 하나를 부여하는 관리자는 데이터베이스 인스턴스에 연결하여 데이터베이스를 시작할 수 있습니다.

SYS 사용자는 설치시 SYSDBA 권한이 자동으로 부여됩니다.
SYS 사용자로 로그인할 때, SYSDBA 또는 SYSOPER 데이터베이스에 연결해야 합니다.
SYSDBA 사용자로 연결하면 SYSDBA 권한이 발동됩니다. SYSOPER 접속하면, SYSOPER 권한이 발동됩니다.
Oracle Enterprise Manager Database Control은 SYSDBA 또는 SYSOPER 연결하지 않고 사용자 SYS 로그인 할 수 없습니다.

Administering Roles

ROLE은 관련 시스템 및 객체 권한의 명명된 그룹입니다. 해당 업무에 맞는 권한의 목록을 ROLE에 정리하고 사용자에게 할당합니다.

ROLE은 Oracle Enterprise Manager Database Control (Database Control) ROLE 페이지에서 확인할 수 있습니다.

ROLE 만들기

응용 프로그램 개발자를 위한 APPDEV 목록을 작성한다고 가정합니다. 응용 프로그램 개발자는 응용 프로그램에서 사용하는 스키마 개체
만들기, 수정 및 삭제를 할 필요가 있기 때문에 APPDEV 역할은 표 7-2과 같은 시스템 권한을 포함합니다.
표 7-2 APPDEV 역할에 부여된 시스템 권한

권한 설명
CREATE TABLE 스키마에 테이블을 사용자가 생성, 수정 및 삭제하는 것을 허용합니다.
CREATE VIEW 스키마에서 뷰를 사용자가 작성, 수정 및 삭제하는 것을 허용합니다.
CREATE PROCEDURE 스키마에서 프로시저를 사용자가 생성, 수정 및 삭제하는 것을 허용합니다.
CREATE TRIGGER 스키마에 트리거를 사용자가 생성, 수정 및 삭제하는 것을 허용합니다.
CREATE SEQUENCE 스키마에서 시퀀스를 사용자가 생성, 수정 및 삭제하는 것을 허용합니다.
CREATE SYNONYM 스키마에서 동의어를 사용자가 생성, 수정 및 삭제하는 것을 허용합니다.

ROLE 변경

응용 프로그램에서 Oracle Streams Advanced Queuing을 사용하는 것을 가정합니다. 이 경우 응용 프로그램을 개발하고 테스트할 수 있도록
개발자 역할 AQ_ADMINISTRATOR_ROLE및 AQ_USER_ROLE 부여할 필요가 있는지 여부를 결정합니다. 이 2 개의 Advanced Queuing 역할을 부여하려면 APPDEV 역할을 편집해야 합니다.

ROLE삭제

역할을 삭제하려면 해당 역할이 현재 1 명 이상의 사용자에게 부여되어도 Database Control은 목록을 제거하는데 주의가 필요합니다.
역할을 삭제하기 전에 해당 역할이 부여되는 사용자가 있는지 확인합니다.
역할을 삭제하면 해당 역할을 부여 받은 모든 사용자가 해당 역할과 관련된 권한이 자동으로 삭제됩니다.

Administering Database User Accounts

사용자 계정보기

사용자 계정은 Oracle Enterprise Manager Database Control (Database Control) 사용자 페이지에서 확인할 수 있습니다.

사용자 계정 생성

기존 사용자 계정 및 특성이 동일한 사용자 계정을 만들려면 기존 사용자 계정을 복제할 수 있습니다.
기존 사용자 계정을 복제하여 새로운 사용자 계정을 만들려면 다음 단계를 수행합니다.
부여 권한및 ROLE 내역

권한 부여 유형 권한 또는 역할 이름
시스템 권한 CREATE ANY TABLE CREATE ANY VIEW
개체 사용 권한 HR 스키마에서 모든 테이블의 SELECT
목록 APPDEV SELECT_CATALOG_ROLE

사용자 암호 만료

암호가 만료되면 사용자가 다음 로그인할 때 암호를 변경하라는 메시지가 표시됩니다. 다음의 경우에는 암호가 만료됩니다.

  1. 사용자 암호가 노출될 경우.
  2. 보안 정책을 표시하고 정기적인 패스워드 변경을 요구하는 경우.
  3. 사용자가 암호를 잊은 경우.

3 번째 경우 사용자 계정을 변경하고 새 임시 암호를 할당하고 암호를 비활성화합니다.
임시 비밀 번호로 로그인하면 새 비밀 번호를선택하도록 요청합니다.

사용자 계정 삭제

Nick라는 사용자가 다른 부서로 이동했다고 가정합니다. 향후 데이터베이스에 액세스할 필요가 없으므로,
Nick이라는 사용자 계정을 삭제합니다.
사용자 계정을 삭제하면 해당 사용자가 소유한 모든 스키마 객체도 삭제되므로 주의가 필요합니다.
스키마 개체를 남겨둔 상태에서 사용자가 데이터베이스에 로그인할 수 없도록 하려면 사용자 계정을 잠급니다.

www.oracleclub.com_imgs_oracle_sql_withadminoption.jpg www.oracleclub.com_imgs_oracle_sql_withadminoption2.jpg

결과

  1. STORM의 테이블은 여전히 존재하지만 새 테이블을 생성할 수 있는 권한은 없습니다.
  2. SCOTT는 여전히 테이블과 새로운 테이블을 생성 할 수 있는 CREATE TABLE권한을 가지고 있습니다

Setting the Database Password Policy

암호 정책 개요

사용자 계정 및 기본 암호 정책을 사용자 계정에 할당됩니다.
새로 설치된 데이터베이스에서 이러한 기본 비밀 번호 정책은 다음을 지정합니다.

  1. 사용자 계정의 암호는 180 일 자동으로 만료됩니다.
  2. 암호 만료 7 일 후 사용자 계정이 잠깁니다.
  3. 10 번 로그인 에 실패하면 사용자 계정이 1일 잠깁니다.

기본 비밀 번호 정책은 PROFILE이라는 데이터베이스 개체를 사용하여 사용자 계정에 할당됩니다.
각 사용자 계정에 프로필이 할당이 프로필은 비밀 번호 정책을 설명하는 여러 속성이 있습니다.
데이터베이스는 사용자 계정을 만들 때 다른 프로파일을 지정하지 않으면 DEFAULT PROFILE이 사용자 계정에 할당됩니다.

데이터베이스 보안을 향상시키기 위해 암호 정책에 엄격한 제한해야 할 수 있습니다.
예를 들어, 암호 기간을 70 일로 설정하고 로그인 3 번 실패하면 사용자 계정이 고정되게 설정할 수 있습니다.
(사용자 계정의 로그인 실패 계정의 암호로 사용자가 잘못된 것을
입력한 경우 발생합니다.)

기본 비밀 번호 정책 변경

DEFAULT PROFILE 암호 관련 속성을 변경하여 모든 데이터베이스 사용자 계정의 기본 비밀 번호 정책을 변경합니다.

Users: Oracle By Example Series

Oracle by Example (OBE)는 이 문서에 대한 시리즈가 포함되어있습니다.
이 OBE는 이 장의 작업을 단계적으로 설명하고 주석의 Screenshot을 사용합니다.

사용자에 대한 OBE를 참조하려면 브라우저에서 다음 URL을 지정합니다.
http://www.oracle.com/technology/obe/11gr2_2day_dba/users/users.htm

study/oracle/11g2daydba/07.txt · 마지막으로 수정됨: 2010/02/26 17:40 저자 tlsga