[Tibero] 티베로(tibero) - 세션 끊고 DB접속 막기
본문 바로가기
IT/DataBase

[Tibero] 티베로(tibero) - 세션 끊고 DB접속 막기

by 로진김 2021. 7. 21.

 티베로 인스턴스는 리스너가 클라이언트와 Worker Process 간의 세션을 연결하여 접속할 수 있습니다. 세션을 모두 끊어 버리고 더 이상 데이터베이스에 접근하지 못하게 막는 Test를 해보겠습니다.

 

 이 Test의 step은 2 step으로 이루어져 있습니다.

  1. 새로운 클라이언트 막기
  2. 기존 세션으로 연결된 클라이언트 내보내기

 

 2 step에 맞춰 Test 해보겠습니다.

 


1. 새로운 클라이언트 막기

 전체 네트워크 접속 제어는 클라이언트 전체를 더이상 TCP/IP 네트워크로 접속하지 못하게 하거나 접속할 수 있도록 하는 방법입니다. 다음은 클라이언트 전체 네트워크 접속을 허용하는 방법으로 Tibero 서버를 처음 기동시킬 때와 같은 상태입니다.

 

ALTER SYSTEM LISTENER REMOTE ON;

 

 다음은 클라이언트 전체의 네트워크 접속을 차단하는 방법입니다.

 

ALTER SYSTEM LISTENER REMOTE OFF;

 

 이 명령어를 실행하면 외부 클라이언트의 네트워크 접속은 차단하지만 로컬 호스트에서 접속하는 클라이언트의 네트워크 접속은 허용됩니다.

(조건 :로컬 호스트의 tbdsn.tbr 파일에서 IP에 'localhost'로 설정이 돼있어야만 해당합니다. 그리고 이미 접속된 클라이언트는 계속 유지됩니다. )

※출처 : Tibero_6_Administrator's_Guide_v2.1.7.5.pdf 문서

 

###sys계정

SQL> ALTER SYSTEM LISTENER REMOTE OFF;

System altered.

  ##netstat -tlpn | grep tblistener
  ##tbsql 안에서는 앞에 !실행하면 됨.
  ##!netstat -tlpn | grep tblistener

SQL> !netstat -tlpn | grep tblistener
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)

SQL> !netstat -na | grep 9629
tcp        0      0 127.0.0.1:56101         127.0.0.1:9629          ESTABLISHED
tcp        0      0 127.0.0.1:56095         127.0.0.1:9629          ESTABLISHED
tcp        0      0 127.0.0.1:9629          127.0.0.1:56095         ESTABLISHED
tcp        0      0 127.0.0.1:9629          127.0.0.1:56101         ESTABLISHED

 

### Putty 열어서 새로운 세션으로 접속

login as: tibero
tibero@192.168.56.241's password:
Last login: Wed Jul 14 13:08:14 2021 from 192.168.56.1
[tibero@T1:/home/tibero]$ cd /
[tibero@T1:/]$ tbsql tibero1/tmax

tbSQL 6

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

TBR-2131: Generic I/O error.

 

 tibero1 계정도 tibero 설치 시 기본으로 설치되는 계정입니다. tibero1 계정을 tbsql로 접근하려 하자 Generic I/O error 메시지가 발생합니다. 리스닝을 더 이상 하지 않아서 접속이 불가한 것입니다. 기존에 연결된 세션은 조회, 동작이 잘되며, 트랜잭션이 만들어지는 것도 가능합니다.

 


 

2. 기존 세션으로 연결된 클라이언트 내보내기

 

### sys계정

SQL> COL USERNAME FOR A20
SQL> SELECT SID, SERIAL#, USERNAME FROM V$SESSION;

       SID    SERIAL# USERNAME
---------- ---------- --------------------
        63         25 SYS
        64         63 TIBERO

2 rows selected.

SQL> ALTER SYSTEM KILL SESSION (64, 63);

System altered.

 

 SID를 포함한 정보를 SELECT문으로 조회한 뒤 SID 번호를 ALTER SYSTEM KILL SESSION(SID#, SID#...); SQL 문으로 프로세스를 강제로 죽입니다.

 

 이로써 새로운 클라이언트는 해당 DB에 접속하지 못하게 됩니다.

 

반응형