한 달이 넘는 세심한 분석과 연구 끝에 마침내 SQL Server의 검증 과정이 완료되었으며, 검증 과정은 SQL Server의 미들웨어 oneproxy-for-sqlserver에 별도로 구현되었습니다. 현재 oneproxy-for-sqlserver는 프런트엔드 및 백엔드 비밀번호 분리 기능을 구현했습니다. 민간 소프트웨어를 통해 상황에 대해 자세히 알아보거나 이 프로젝트의 위키를 따라 상황에 대해 알아볼 수 있습니다.
oneproxy-for-sqlserver 버전 1.1.0부터 비밀번호 분리 기능이 지원됩니다. oneproxy-for-sqlserver는 오픈 소스 프레임워크인 oneproxy-monotor에서 개발되었습니다. 프런트 엔드는 다른 사용자 이름과 비밀번호를 사용하여 데이터베이스에 로그인하여 미들웨어 oneproxy-for-sqlserver에 로그인하고, oneproxy-for-sqlserver는 다른 사용자 이름과 비밀번호를 사용하여 데이터베이스에 로그인합니다. 구성 및 사용법은 다음과 같습니다.
[oneproxy] logfile = oneproxy_log.log pidfile = oneproxy_pid.pid listen_addr = 0.0.0.0 listen_port = 9999,8888,7777,6666 httpserver_addr = 0.0.0.0 httpserver_port = 8080 log_level = error data_dump = false log_sql = false clientusername = admin clientpassword = 123456 passwordseparate = true [database_1433] host = 127.0.0.1 port = 1433 username = sa password = 0000 [sqlserver_9999] dbmastergroup = database_1433 classname = SSProtocol frontport = 0
위는 구성 파일의 내용입니다. [oneproxy] 및 [database_xxx] 태그 아래에 있습니다. oneproxy] 태그 아래 구성은 클라이언트에서 사용하는 사용자 이름과 비밀번호입니다. Passwordseparate는 미들웨어에게 이 기능을 사용할지 여부를 지시합니다. 기본적으로(이 구성 항목 없이) true입니다. 비밀번호 분리 기능을 꺼야 하는 경우 이 구성을 false로 설정하면 됩니다.
clientusername = admin clientpassword = 123456 passwordseparate = true
동시에 데이터베이스 정보는 [database_xxx] 태그 아래에 위치해야 하며, 태그 이름은 데이터베이스로 시작해야 한다는 점에 유의하세요. 데이터베이스에 로그인하기 위한 사용자 이름과 비밀번호는 데이터베이스 레이블 아래에 있어야 하며 사용자 이름과 비밀번호로 지정해야 합니다.
테스트 환경:
서버 버전:
Microsoft SQL Server 2014 - 12.0.2000.8 (X64) Feb 20 2014 20:04:26 Copyright (c) Microsoft Corporation Express Edition (64-bit) on Windows NT 6.3 <X64> (Build 14393: ) (Hypervisor)
클라이언트 프로그램 및 버전:
1. sqlserverjdbc4
2. SQL Server Manager 스튜디오
3.sqlstress