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);
}
}
}
}