2013-01-09 3 views
1

저는 프로젝트를 시작하고 있습니다 (실제로는 정확하게 2 개). 그리고 SQL 데이터베이스를 사용하고 있습니다. 저는 SQL을 새로 도입했지만 지금 당장 결정하려고하는 한 가지 결정에 대해 궁금합니다.SQL/서버 연결 및 보안

하나의 프로젝트는 우리가 만든 물건에 대한 내부 추적 시스템이고, 다른 하나는 내가 만들고있는 작은 게임입니다. 처음에는 약 1 ~ 10 개의 동시 연결이 예상되지만, 두 번째 연결에서는 3 ~ 4 배의 연결을 꿈꿀 수 있습니다.

SQL 보안 및 성능에 대해 궁금한 점이 있는데,이 문제는 내가 읽었을 때 해결책이되는 것이 아닙니다. 안전하고 빠르고 싶다면 사용자를 기록하는 것이 더 좋습니다 서버에서 SQL 데이터베이스에 액세스하도록하거나 모든 사용자에게 SQL 연결을 제공하는 것이 좋습니다 (게임에서 스누핑을 통해 사용자가 로그인 정보를 훔치지 못하도록 서버와의 연결을 가정합니다).

기본적으로 데이터베이스에 액세스하는 서버에 스크립트를 만들어야하며 서버가 SQL 데이터베이스에 쓰도록하여 ​​최소한의 동시 연결을 유지해야합니다 (이것이 내 게임에 대해 수행해야한다고 가정합니다. 몇 가지 지속적인 온라인 통계가 있음) 또는 클라이언트에서 데이터베이스로 직접 연결해야합니까 (대부분의 자습서에서 볼 수있는 방식이며 비즈니스 측면에서 더 수용 가능하다고 가정합니다).

읽어보기는했지만이 내용은 다루지 않았습니다. 서버를 통해 모든 연결 요청을 처리하고 서버를 통해 정보를 반환하는 것이 더 안전하지만 처음에는 내가 본 대부분의 응용 프로그램이 두 번째 작업을 수행하고 내가 읽은 내용 중 어느 것도 /또는. 추신 : 그렇습니다. 필자는 보안 검색과 성능 향상을 위해보다 많은 정보가 필요하다는 것을 알고 있습니다. 나는이 질문에 대해 궁금합니다. 답변 해 주셔서 감사합니다.

답변

1

당신이해야 할 일은 연결 풀을 구성하는 것입니다. 이것은 연결 풀을 사용자에게 넘겨 줄 수있는 최대 동시 연결 수이며 연결을 한 지점에 "재사용"할 수도 있습니다. 이제 데이터베이스에 직접 연결하는 클라이언트 측면에서 그렇게하지 마십시오. 데이터베이스에 대한 읽기 권한 만있는 비 특권 사용자 계정을 구성하는 것입니다.이 계정은 데이터를 검색하여 클라이언트에 전달하는 계정입니다. 중요한 부분은이 읽기 전용 계정이 데이터베이스에 쓸 수 없으므로 데이터 손상 가능성을 최소화하는 것입니다.

이제 응용 프로그램에 공격 (SQL injection)과 같은 부적절한 데이터를 걸러 낼 수있는 서비스 나 유형의 인터페이스에 연결시켜야합니다.이 데이터는 일단 위생 처리 된 다음에 전달할 수 있습니다. 귀하의 데이터 계층. 데이터 영역 내부에서 연결을 열고 깨끗한 + 안전한 데이터를 데이터베이스에 푸시합니다. 판독기 계정은 트랜잭션이 커밋 된 후에 검색 할 수 있습니다.

요약하면 데이터베이스 계정이 2 개 이상 필요합니다. 하나는 읽기 전용이고, 이것은 사용자 용이고 하나는 작업을 수행하는 데 사용됩니다. 이것은 응용 프로그램에 숨겨져 있으며 외부에서 액세스 할 수 없습니다.

+0

정보를 제공해 주셔서 감사합니다. 나중에 나중에 자세한 정보가 필요하면이 부분을 나중에 답변으로 표시하여 ^^이 정보를 기반으로 더 많은 정보를 찾아 볼 것입니다.^희망에 따라 더 읽고 배우기를 바랍니다. . - 또한 SQL과 PHP 주입 및 모든 들어오는 데이터 필터링에 대한 계획을 알고 있었지만 C# 스크립트로 서버에 모든 데이터베이스 작업을 (원래) 계획하고 있으므로 읽기 전용 데이터베이스를 만드는 것을 생각하지 않았습니다. 정보 주셔서 감사합니다. – Charles

+0

@Charles 읽기 전용 데이터베이스는 아니므로 읽기 전용 액세스 권한을 가진 ** 사용자 **입니다. – Woot4Moo

+0

그게 원래 내가 어떻게 할거야 (그리고 내 사용자 정의 프로그램에서 어떻게 작동하는지). 데이터베이스와 데이터베이스 계정을 잘못 읽고 SQL에 읽기 전용 데이터베이스가 필요하다는 것을 알았습니다. 다시 읽도록 알려 주셔서 감사합니다. >. ;;;; – Charles

-1

서버는 SQL 쿼리를 처리하는 서버입니다. 클라이언트는 SQL 데이터베이스에 액세스 할 수 없습니다.

+0

이 정보는별로 없으며 보안 측면에 대해서는 분명히 대답하지 않습니다. – Woot4Moo