DB

일괄 DB 커넥션 확인 (jdbc url, id, password)

Lawmin 2024. 7. 18. 17:03

ID, 비밀번호를 전체적으로 점검할 일이 있을 때 만들어서 사용한 것입니다.

(단, DB 정책에 따라 잦은 로그인 실패 시 계정이 잠길 수 있으므로 유의해야 합니다.)

 

1. Excel로 아래과 같은 형태로 작성 후 COPY-PASTE 하여 input.tsv 파일로 생성 (탭으로 분리된 값)

jdbc:oracle:thin:@1.2.3.4:1521/DBNAME1 ID1 PWD1
jdbc:oracle:thin:@1.2.3.5:1521/DBNAME2 ID2 PWD2

 

2. JAVA 프로그램 컴파일하여 실행

import java.io.BufferedReader;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.ArrayList;

public class DbCheck {
	static class DbConInfo {
		String url;
		String id;
		String pw;
		DbConInfo(String url, String id, String pw) {
			this.url = url;
			this.id = id;
			this.pw = pw;
		}
	}
	
	static int delayMs = 100;
	
	public static void main(String[] args) throws Exception {
		ArrayList<DbConInfo> dcl = new ArrayList<DbConInfo>();
		BufferedReader br = new BufferedReader(new FileReader("input.tsv"));
		String line = null;
		while((line = br.readLine()) != null) {
			String [] tokens = line.split("\t");
			DbConInfo dci = new DbConInfo(tokens[0], tokens[1], tokens[2]);
			dcl.add(dci);
        }
		br.close();
		Class.forName("oracle.jdbc.driver.OracleDriver");
        Connection con = null;
        for(DbConInfo dci : dcl) {
        	if(dci.url.startsWith("jdbc")) {
		        try {
		            con =  DriverManager.getConnection(dci.url, dci.id, dci.pw);
	        		System.out.format("[O] url: %s, id: %s\n", dci.url, dci.id);        	
		        } catch(Exception e) {
		        	System.out.format("[X] url: %s, id: %s, err: %s", dci.url, dci.id, e.getMessage());
		        } finally {
		        	if(con != null) { con.close(); }
		        }
		        Thread.sleep(delayMs);
        	}
    	}
	}
}