시나리오: 행 및 컬럼 액세스 제어를 사용하는 ExampleHMO - 보안 관리

보안 관리 및 보안 관리자(SECADM) 역할은 ExampleHMO의 환자 및 회사 데이터를 보호하는 데 중요한 역할을 합니다. ExampleHMO의 관리팀은 다른 사람에게 데이터베이스 관리 권한과 보안 관리 권한을 부여하기로 결정했습니다.

ExampleHMO의 관리팀은 데이터에 대한 액세스 관리 역할을 작성하기로 결정합니다. 또한 이 팀에서는 DATAACCESS 권한이 있는 사용자도 기본적으로는 보호된 건강 및 개인 데이터를 볼 수 없도록 결정합니다.

관리팀은 Alex를 ExampleHMO의 유일한 보안 관리자로 선택합니다. 이제부터는 Alex가 모든 데이터 액세스 권한을 제어합니다. Alex는 이 권한을 사용하여 행 권한, 컬럼 마스크 및 함수, 트리거가 안전한지 여부와 같은 보안 규칙을 정의합니다. 이러한 규칙은 Alex 통제하에 지정된 데이터에 액세스할 수 있는 사용자를 제어합니다.

데이터베이스 관리자인 Peter가 필수 테이블을 작성하고 필수 역할을 설정하면 업무가 구분됩니다. 데이터베이스 관리 업무와 보안 관리 업무는 Alex를 보안 관리자로 지정하여 구분됩니다.

Peter는 데이터베이스에 연결하여 Alex에게 SECADM 권한을 부여합니다. Peter에게는 현재 DBADM, DATAACCESS 및 SECADM 권한이 있으므로 SECADM 권한을 부여할 수 있습니다.

-- To seperate duties of security administrator from system administrator, 
-- the SECADMN Peter grants SECADM authority to user Alex.

GRANT SECADM ON DATABASE TO USER ALEX;
Alex는 SECADM 권한을 받은 후 데이터베이스에 연결하여 Peter의 보안 관리자 특권을 취소합니다. 이제 업무가 분리되며 Alex는 ExampleHMO 내부 및 외부 사람들에게 데이터 액세스 권한을 부여할 수 있는 유일한 권한을 보유합니다. 다음 SQL문은 Alex가 Peter의 SECADM 권한을 취소한 방법을 보여줍니다.
--revokes the SECADMIN authority for Peter

REVOKE SECADM ON DATABASE FROM USER PETER;