본문 바로가기

IT/DB

[Oracle] SYSDBA 로그인의 제한

//  SYSDBA 로그인의 제한
배경 정보 “dba” 그룹에 포함된 UNIX/Linux 사용자는 아래와 같은 명령을 이용하여 SYSDBA 권한으로 로그인할 수 있습니다:
sqlplus / as sysdba
DBA가 SYS 패스워드를 기억하거나 입력할 필요가 없다는 편의성 때문에 이러한 방법이 자주 사용되곤 합니다. 하지만 이로 인한 취약점 또한 존재합니다. dba 그룹 멤버로 로그인할 수 있는 모든 사용자는 SYS 권한으로 데이터베이스에 로그인할 수 있습니다. SYS에 아무리 강력한 암호 체계를 적용해도 이는 무용지물과 다름없습니다. SYS 계정의 강력한 권한을 보호하려면 dba 그룹이 SYS 계정으로 로그인하면서 SYS 암호를 반드시 입력하도록 하는 것이 좋습니다. 이런 방법으로 외부 침입을 완전히 차단할 수는 없겠지만, 그 위험을 상당 수준 줄일 수 있습니다.
전략
이 프로세스는 SQLNET.ORA 파일의 SQLNET.AUTHENTICATION_SERVICES 매개변수에 의해 통제됩니다. 이 매개변수가 NONE으로 설정되었다면, SYSDBA 역할의 자동 로그인 기능은 비활성화됩니다. 자동 로그인의 비활성화를 위해 $ORACLE_HOME/network/admin 디렉토리에 위치한 SQLNET.ORA 파일에 아래 라인을 삽입해 줍니다.
SQLNET.AUTHENTICATION_SERVICES=(NONE)
이제 dba 그룹에 포함된 사용자가 아래와 같은 방법으로 로그인을 시도하면:
$ sqlplus / as sysdba
다음과 같은 에러를 확인하게 됩니다:
ERROR:
ORA-01031: insufficient privileges
성공적으로 연결하기 위해서는 SYS 패스워드를 함께 입력해야 합니다:
$ sqlplus /nolog
SQL>connect sys/oracle as sysdba
이와 같은 방법으로 SYS 패스워드를 알지 못하는 해커가 dba 계정을 이용하여 접근을 시도하는 것을 차단할 수 있습니다.

등록일시
2012.05.10 11:48 (업로드 2012.05.10 11:48)
공개권한
전체공개
태그
#Oracle

'IT > DB' 카테고리의 다른 글

[SQL] IP매칭 query 예제  (0) 2015.12.01
[IBM DB2] DB2 관련 정리  (0) 2015.12.01
[Oracle] Select  (0) 2015.11.30
[SQL] INSERT, UPDATE 모음  (0) 2015.11.30
[Oracle] 쓰레기 테이블 삭제  (0) 2015.11.30