2011-03-09 6 views
1

저는 전국의 여러 클라이언트 컴퓨터에서 실행되는 Delphi 응용 프로그램을 만들었습니다. 사용하는 데이터베이스는 저장 프로 시저에 크게 의존하는 SQL Server입니다.Delphi를 사용하여 원격 SQL Server에 직접 연결

문제는 DB가 중간에 응용 프로그램 서버가없는 중앙 서버에 있어야하기 때문에 웹 서비스와 같은 옵션을 사용할 수 없다는 것입니다. 또한 응용 프로그램은 데이터베이스 서버에 직접 액세스해야하며 모든 클라이언트가이 단일 데이터베이스에 연결해야합니다.

어떻게이 작업을 수행 할 수 있습니까?

+6

TCP/IP를 통한 MS SQL 사용의 복잡성은 무엇입니까? 간단히 [적절한 연결 문자열 만들기] (http://msdn.microsoft.com/en-us/library/ms191260.aspx). –

+0

네, DB 서버를 인터넷에 직접 게시 하시겠습니까? 예, * 누군가는 적절한 연결 문자열로 연결하려고 할 수 있습니다 ... 질문이 보안에 관한 것이기를 바랍니다 ... –

답변

4

VPN을 사용하십시오. 데이터베이스가 인터넷 상에 없을 때 응용 프로그램과 데이터베이스 사이의 통신 채널을 보호합니다. VPN이 활성화되면 로컬에서와 같이 데이터베이스에 연결할 수 있습니다. 인터넷에서 직접 DB 서버를 제거하는 것은 매우 위험 할 수 있습니다. 간단한 검사에서이를 식별하고 취약성 공격을 시도 할 수 있습니다. 특정 보안 소프트웨어 및 어플라이언스를 사용하여 무언가를 달성 할 수있는 방법이 있지만 VPN을 사용하는 것보다 훨씬 비용이 많이들 수 있습니다. Windows 서버에는 상자에 VPN 소프트웨어 (라우팅 서비스에 있음)가 함께 제공되며 무료 솔루션 (예 : OpenVPN)도 있습니다. 대부분의 방화벽/라우터에는 VPN 끝점 기능이 있습니다. 구성하기 만하면되며 일반적으로 Active Directory가 아닌 경우 RADIUS 인증을 지원합니다.

+0

이것이 답이면 주제를 벗어나 수퍼 유저에게 보내려면 질문을 닫아야합니다. 그리고 이것이 진정으로 답이라고 생각합니다. 그래서 나는 상향 투표를하고 있습니다. –

+0

아마 ServerFault가 올바른 영역이어야합니다.하지만 이것은 대답이 "아무것도하지 않아도 소프트웨어에 변경을 요구하지 않는 솔루션이 있습니다. 단지 고객에게 구성을 요청하십시오."라고 프로그래머에게도 흥미로운 질문입니다. 이 사양에 따라 그들의 시스템 ". –

2

각 클라이언트는 ADO 연결 문자열에 지정된 서버에 대한 연결을 설정하는 TADOConnection 구성 요소를 사용해야합니다.

+2

ADO 구성 요소를 사용할 필요가 없습니다. 따라서 각 클라이언트는 TADOConnection을 사용할 수 있습니다. 그러나 ADO는 주로 사용되며 Delphi에 포함되어 있습니다. –

관련 문제