인터넷에 SQL 서버를 여는 개념이 마음에 들지 않습니다. 방화벽을 잠글 수 있더라도. 그러나 나는 항상 데이터베이스와 직접 작업 해왔다. 지금 SQL Server 데이터베이스 1 개, ASP.NET/C#의 웹 응용 프로그램 및 Delphi XE2의 몇 가지 Windows 응용 프로그램을 포함하는 시스템을 구축하고 있습니다. 그러나 처음부터 데이터베이스 주위에 일종의 '필터'를 넣어서 열 필요가 없습니다.델파이와 C# 모두를위한 SQL Server 레이어
나는 이것에 대해 많은 것들을 알고 있지만 그들에 대해 아무것도 알지 못하거나 내 시나리오를 위해 무엇을 얻을지 모릅니다. SQL Server에 기본으로 유지하고 싶습니다. 다른 유형의 데이터베이스 엔진을 사용할 계획은 없습니다.
필터와 같은 표준 SQL 연결 이외의 방법으로 클라이언트에서 서버로 연결해야합니다. 자체 암호화 패킷을 생성하고 데이터를 자체 방식으로 전송합니다. 델파이와 C# 모두를위한 래퍼 클래스를 갖게 될 것이고, 거의 동일하게 될 것이며, 데이터를 DLL로 스트리밍하여 DB와 상호 작용할 수있게 될 것입니다.
지금은 이것에 대해 갈 수있는 세 가지 방법이 ...있다
- 전체 SQL 서버 래퍼, 가장 가능성이없는 소스 코드, 심지어 내가 데리러 싶지 않아 (그 자신의 언어가있을 수 있습니다 다른 데이터베이스 언어), 내 프로젝트와는 별도로 자체 시스템으로 독립적으로 사용할 수 있습니다.
- 델파이 (XE2)에서 오픈 소스 래퍼, 그렇지 않으면 C#, 내 시스템 전용 프로토콜, 전적으로 프로젝트 전용, DLL의 최종 형식으로 웹 사이트 (예 : C#에서) 및 응용 프로그램 (Delphi에서).
- 웹 서비스 - 그러나 나는 단지 1 개의 호스팅 사이트를 가지고 있습니다 (1 사이트 지불, 2 사이트는 2 배가됩니다). 추가 웹 서비스 또는 Windows 서비스를 호스팅 할 수 없습니다. 그것은 웹 사이트와 통합되어야합니다. 그렇지 않으면, 나는 이것을 위해 웹 서비스를했을 것이다.
나는 두 번째 옵션을 선호하고 첫 번째 옵션에 가깝게 가고 싶지 않으며 세 번째 옵션을 전혀 수행 할 수 없습니다.
그럼 데이터베이스 레이어에 적합한 라이브러리는 무엇입니까? 그리고 이미 델파이 XE2에 일부가 설치되어있을 수 있습니까? 아마 암호화 된 XML 패킷을 생각하고 있나?
예를 들어 'Customers'에 대한 표가 있다고 가정 해 보겠습니다. 내 웹 사이트와 응용 프로그램에서 나는 결코 select * from Customers
과 같은 SQL 스크립트가 없거나 일반적으로 SQL 스크립트가 없어야합니다. 대신 데이터베이스 주위에 래퍼가 있습니다. 그래서 DBGetCustomers(Conditions: TGetCustomersConditions): TDBCustomers;
과 같은 함수를 호출 할 수 있습니다. 여기서 TGetCustomersConditions
은 쿼리를 필터링하는 몇 가지 방법이고, TDBCustomers
은 쿼리의 결과를 나타냅니다.
DBAddCustomer(Item: TCustomerToAdd): TInsertSuccess;
이있을 수도 있습니다. 여기에서 TCustomerToAdd
은 삽입 할 내용을 나타내고 TInsertSuccess
은 영향을받는 오류 메시지 또는 영향을받는 행을 나타냅니다. 나는 그것이 작동하도록 의도하지 않는다. 정확히과 같지만, 일반적으로 모든 래퍼의 개념을 설명하기 위해서이다. 응용 프로그램이 서버에 요청을 보내면 SQL 쿼리로 아무 것도 변환하지 않은 것입니다. 요청이 서버 (데이터베이스에 연결할 수 있음)에 도착할 때까지 서버는 SQL 쿼리에 대한 모든 것을 디코딩합니다.
내가이 질문은'유용하지 '방법이 downvoters 알고 싶어요 것 세계의 유일한 사람이 보안을 위해 데이터베이스 주위에 레이어를 배치하려고합니다. –
불행히도 당신은 단지 그것에 익숙해 져야합니다 (+1). 나는 관련된 개념을 결코 이해하지 못했던 사람들로부터 우스운 투표를 몇 번했습니다. 익명 다운 투표를 허용하는 요지는 무엇인지, 그리고 나는 이유가 필수적이어야한다고 생각한다! – Peter
나는 똑같은 주장을했다. 누군가가 downvote를 원한다면 적어도 20 문자를 설명해야한다. –