1.2.3. 데이터베이스 사용자 생성 및 권한 관리

Autonomous Database (ADB) 운영의 핵심은 사용자 관리입니다. 적절한 사용자 생성과 권한 부여는 보안 유지에 필수적입니다. 이 섹션에서는 ADB에서 사용자를 생성하고 관리하는 방법을 설명합니다. 사용자 생성, 권한 부여, 권한 회수 과정을 단계별로 안내합니다.

1.2.3.1 ADMIN 사용자로 접속

ADB 인스턴스 생성 시 설정한 ADMIN 계정을 사용합니다. Oracle SQL Developer를 실행합니다. 새로운 데이터베이스 접속을 생성합니다. 접속 유형은 “Oracle Cloud Autonomous Database”를 선택합니다. 사용자 이름에 “ADMIN”을 입력합니다. 비밀번호는 ADB 인스턴스 생성 시 설정한 ADMIN 비밀번호를 입력합니다. Wallet 파일을 선택합니다. 1.2.2 섹션에서 다운로드한 Wallet 파일을 지정합니다. “접속 테스트” 버튼을 클릭하여 연결을 확인합니다. 성공적으로 연결되면 “접속” 버튼을 클릭하여 ADMIN 계정으로 접속합니다.

1.2.3.2 새로운 사용자 생성

ADMIN 계정으로 접속한 후 SQL Developer에서 새 사용자를 생성합니다. SQL 워크시트를 엽니다. 다음 SQL 명령어를 실행하여 새 사용자를 생성합니다.

CREATE USER autotrade_user IDENTIFIED BY 비밀번호;

autotrade_user는 새로 생성할 사용자 이름입니다. 비밀번호는 해당 사용자의 비밀번호입니다. 강력한 비밀번호를 설정하는 것이 중요합니다. 비밀번호는 안전하게 관리해야 합니다.

1.2.3.3 사용자에게 권한 부여

새로 생성한 사용자에게 필요한 권한을 부여합니다. 권한은 데이터베이스 객체에 대한 접근 및 조작 권한을 의미합니다. 자동매매 시스템에 필요한 최소한의 권한만 부여하는 것이 좋습니다. 예를 들어, 테이블 생성, 데이터 삽입, 데이터 조회 권한 등을 부여할 수 있습니다. 다음 SQL 명령어를 실행하여 권한을 부여합니다.

GRANT CREATE TABLE TO autotrade_user;
GRANT CREATE VIEW TO autotrade_user;
GRANT CREATE SEQUENCE TO autotrade_user;
GRANT CREATE PROCEDURE TO autotrade_user;
GRANT UNLIMITED TABLESPACE TO autotrade_user;

CREATE TABLE 권한은 테이블 생성 권한을 부여합니다. CREATE VIEW 권한은 뷰 생성 권한을 부여합니다. CREATE SEQUENCE 권한은 시퀀스 생성 권한을 부여합니다. CREATE PROCEDURE 권한은 프로시저 생성 권한을 부여합니다. UNLIMITED TABLESPACE 권한은 테이블스페이스 사용 권한을 부여합니다.

특정 테이블에 대한 권한만 부여할 수도 있습니다. 예를 들어, ticker 테이블에 대한 SELECT, INSERT, UPDATE 권한을 부여하려면 다음 SQL 명령어를 실행합니다.

GRANT SELECT, INSERT, UPDATE ON ticker TO autotrade_user;

1.2.3.4 사용자 권한 확인

사용자에게 부여된 권한을 확인하려면 다음 SQL 명령어를 실행합니다.

SELECT * FROM dba_sys_privs WHERE grantee = 'AUTOTRADE_USER';
SELECT * FROM dba_tab_privs WHERE grantee = 'AUTOTRADE_USER';

첫 번째 쿼리는 시스템 권한을 보여줍니다. 두 번째 쿼리는 객체 권한을 보여줍니다.

1.2.3.5 사용자 권한 회수

더 이상 필요하지 않은 권한은 회수해야 합니다. 보안 강화를 위해 불필요한 권한은 최소화해야 합니다. 다음 SQL 명령어를 실행하여 권한을 회수합니다.

REVOKE SELECT, INSERT, UPDATE ON ticker FROM autotrade_user;

REVOKE 명령어는 권한을 회수하는 데 사용됩니다. 위 예제는 autotrade_user로부터 ticker 테이블에 대한 SELECT, INSERT, UPDATE 권한을 회수합니다.

1.2.3.6 사용자 삭제

더 이상 사용하지 않는 사용자는 삭제합니다. 불필요한 계정은 보안 위험을 증가시킬 수 있습니다. 다음 SQL 명령어를 실행하여 사용자를 삭제합니다.

DROP USER autotrade_user;

사용자를 삭제하기 전에 해당 사용자가 소유한 객체를 먼저 삭제해야 할 수도 있습니다. 예를 들어, 사용자가 생성한 테이블을 먼저 삭제해야 합니다.

1.2.3.7 보안 고려 사항

  • 강력한 비밀번호 사용: 모든 사용자 계정에 강력한 비밀번호를 설정해야 합니다.
  • 최소 권한 원칙: 각 사용자에게 필요한 최소한의 권한만 부여해야 합니다.
  • 정기적인 권한 검토: 사용자 권한을 정기적으로 검토하고 불필요한 권한은 회수해야 합니다.
  • 감사 로깅 활성화: 데이터베이스 활동에 대한 감사 로깅을 활성화하여 보안 위협을 탐지하고 대응해야 합니다.
  • Wallet 파일 보안: Wallet 파일을 안전하게 보관하고 접근을 제한해야 합니다.

이 단계를 따르면 ADB에서 사용자를 안전하게 생성하고 관리할 수 있습니다. 다음 섹션에서는 파이썬 개발 환경을 준비하는 방법을 알아봅니다.

위로 스크롤