> For the complete documentation index, see [llms.txt](https://docs.tibero.com/technical-guides/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tibero.com/technical-guides/topics/security/privilege-management.md).

# 데이터베이스 권한 관리

DB 권한 관리에 대한 위험 분석, 위험 영향, 해결 방안을 설명합니다.

## 개발 및 운영 시스템 분리 사용 <a href="#id-1.1" id="id-1.1"></a>

### **위험 분석**

개발 시스템과 운영 시스템을 하드웨어적으로 분리하여 Link가 설정되지 않아야 하며, 운영 시스템의 데이터를 개발 시스템으로 이전할 때 중요 데이터의 삭제 같은 통제와 검증 절차를 거쳐야 합니다.

### **위험 영향**

운영 시스템의 중요 데이터가 개발 시스템으로 누출될 가능성이 있습니다.&#x20;

### **해결 방안**

개발 시스템과 운영 시스템의 분리를 회사의 정책으로 정의하고 개발자와 운영자를 원칙적으로 분리합니다. 만약 분리할 수 없다면 개발자가 운영 시스템에 접근할 경우 통제 절차를 거치도록 해야 합니다.

### &#x20;<a href="#id-1.2._dba" id="id-1.2._dba"></a>

## SYSDBA 권한 제한 <a href="#id-1.2._dba" id="id-1.2._dba"></a>

### **위험 분석**

DBA가 SYS 패스워드를 입력하지 않고 접근하면 그룹을 가진 멤버들이 SYS 권한으로 로그인이 가능하므로 SYS 암호를 반드시 입력해야 합니다.&#x20;

### **위험 영향**

인증 없이 SYS 권한 획득이 가능합니다.

### **해결 방안**

Tibero에는 Oracle의 sqlplus /as sysdba와 같은 접속 방법이 없으므로 해당사항이 없다.

###

## Listener 패스워드 설정 점검 <a href="#id-1.2._dba" id="id-1.2._dba"></a>

### **위험 분석**

Listener를 구동 또는 중지하는 작업은 DBA와 같은 특권자에게만 부여하며 Listener에 대한 접근 통제를 위해Listener 접근 패스워드를 설정해야 합니다.

### **위험 영향**

비인가자의 Listener 접근이 가능합니다.

### **해결 방안**

Tibero는 Listener와 서버 프로세스가 동시에 기동되기 때문에 해당사항이 없습니다.

###

## 환경설정 파일 보호 점검 <a href="#id-1.2._dba" id="id-1.2._dba"></a>

### **위험 분석**

운영에 중요한 환경 파일을 아무나 접근해서 수정할 경우 침입자가 환경 파일을 열어 설정값을 변경함으로써DB 운영에 영향을 줄 수 있습니다.

### **위험 영향**

악의적인 목적으로 파일을 변조할 수 있습니다.

### **해결 방안**

* $TB\_HOME/config/$TB\_SID.tip 파일의 퍼미션값을 변경합니다. (권장값 : 600 또는 640)
* OS 계정에 의해 수정 및 관리되도록 하고 일반 계정의 접근을 금지합니다.

###

## 중요 파일 소유자 또는 그룹 설정 점검 <a href="#id-1.2._dba" id="id-1.2._dba"></a>

### **위험 분석**

중요 파일에 불필요한 소유권 또는 그룹 권한이 주어질 경우 해당 파일로 인해 인증되지 않은 사용자가 정보를 획득할 수 있습니다.

### **위험 영향**

시스템 또는 네트워크 환경설정 파일의 권한이 취약하게 설정되어 있거나 Tibero 사용자가 소유권을 가져야 하는 파일을 권한없는 사용자가 소유한다면비인가자가 시스템 권한을 획득하거나 중요 데이터를 파괴할 수 있습니다.

### **해결 방안**

$TB\_HOME/client/config/tbdsn.tbr 파일의 퍼미션값을 변경합니다. (권장값 : 600 또는 640)

###

## Public에 대한 권한 제한 <a href="#id-1.2._dba" id="id-1.2._dba"></a>

### **위험 분석**

Object의 사용 권한을 Public에 부여하면 Object 사용 권한이 없는 모든 계정이 해당 Object에 접근 가능하고Object의 정보를 획득할 수 있습니다.

### **위험 영향**

새로 생성된 계정의 Object 사용 권한이 Public에 불필요하게 부여된 경우 권한 남용의 위험이 있습니다.

{% hint style="info" %}
솔루션을 설치할 때 디폴트로 Object 사용 권한이 Public에 부여되거나 소유자가 시스템 계정인 경우에는 양호합니다.
{% endhint %}

### **해결 방안**

Object의 사용 권한이 불필요하게 Public에 부여된 경우 권한을 제한합니다. &#x20;

다음은Public으로부터 권한을 제거하는 방법입니다.

```
SQL> REVOKE <권한> ON <object> FROM PUBLIC
```

###

## GRANT 옵션 사용 제한 <a href="#id-1.2._dba" id="id-1.2._dba"></a>

### **위험 분석**

GRANT 옵션과 함께 권한을 받은 사용자는 해당 권한을 다른 사용자에게 부여할 수 있습니다.&#x20;

### **위험 영향**

불필요하게 GRANT 옵션이 부여된 계정이 있는 경우 권한 남용의 위험이 있습니다. (단,  담당자가 확인하여 권한이 필요하다고 인정하는 경우는 제외합니다.)

### **해결 방안**

GRANT 옵션 권한 부여는 DBA만 할 수 있도록 제한합니다. 불필요하게 GRANT 옵션이 부여된 계정은 권한을 제 거하고 GRANT 옵션 없이 권한을 다시 부여합니다.

#### **권한 Revoke**

```
SQL> REVOKE <권한> ON <object명> FROM <user_name>;
```

#### **권한 Grant**

```
SQL> GRANT <권한> ON <object명> TO <user_name>;
```

###

## ADMIN 옵션 사용 제한 <a href="#id-1.2._dba" id="id-1.2._dba"></a>

### **위험 분석**

ADMIN 옵션과 함께 시스템 권한을 받은 사용자는 해당 권한을 다른 사용자에게 부여할 수 있습니다.&#x20;

### **위험 영향**

불필요하게 ADMIN 옵션이 부여된 계정이 있는 경우 권한 남용의 위험이 있습니다. (단,  담당자가 확인하여 권한이 필요하다고 인정하는 경우는 제외합니다.)

### **해결 방안**

ADMIN 옵션 권한 부여는 DBA만 할 수 있도록 제한합니다. 불필요하게 ADMIN 옵션이 부여된 계정은 권한을 제 거하고 ADMIN 옵션 없이 권한을 다시 부여합니다.

#### **권한 Revoke**

```
SQL> REVOKE <권한> ON <object명> FROM <user_name>;
```

#### **권한 Grant**

```
SQL> GRANT <권한> ON <object명> TO <user_name>;
```
