다음을 통해 공유


보안을 적용할 위치 결정

절충은 보안을 적용하는 데 내재되어 있습니다. 데이터베이스는 궁극적으로 데이터가 보호하는 가장 중요한 항목이라는 점을 감안할 때 보안 논리를 배치하는 자연스러운 장소가 될 수 있습니다. 그러나 이렇게 하면 성능에 상당한 영향을 미칩니다. 데이터베이스에서 보안을 적용하는 것은 비용이 많이 들고, 크기가 저하되며, 유연하지 않을 수 있습니다.

중간 계층에서 보안 적용

COM+를 사용하여 확장 가능한 다중 계층 애플리케이션에 따라야 하는 일반적인 규칙은 가능하면 중간 계층의 COM+ 애플리케이션에서 자세한 보안을 적용해야 한다는 것입니다. 이렇게 하면 COM+에서 제공하는 확장 가능한 서비스를 완전히 활용할 수 있습니다. 반드시 필요한 경우에만 데이터베이스에서 인증을 적용하고, 이렇게 하면 성능에 미치는 영향을 완전히 고려해야 합니다.

최적의 상황은 COM+ 애플리케이션이 자체 ID로 액세스할 수 있도록 데이터베이스 테이블을 보호할 수 있는 것입니다. 데이터베이스는 COM+ 애플리케이션을 인증하고 신뢰하여 데이터에 액세스할 클라이언트를 올바르게 인증하고 권한을 부여해야 합니다. 이 방법의 이점은 다음과 같습니다.

  • 연결은 완전히 일반적이므로 모든 클라이언트 간에 연결 풀링을 사용할 수 있습니다.
  • 일반적으로 애플리케이션 크기를 조정하는 경우 문제가 되는 초크 지점인 데이터 액세스를 최적화합니다.
  • 특히 선언적 역할 기반 보안을 사용할 수 있는 경우 보안을 적용하기 위한 논리 오버헤드를 최소화할 수 있습니다.
  • 보안 정책에서 뛰어난 유연성을 제공할 수 있습니다. 역할 기반 보안 관리에 설명된 대로 쉽게 구성하고 다시 구성할 수 있습니다.

그러나 역할 효과적으로 디자인에서 설명한 것처럼 역할은 일부 사용자 데이터 관계에 쉽고 효과적으로 적용할 수 있지만 보안 액세스 결정을 위한 범용 솔루션은 아닙니다.

데이터베이스에서 보안 적용

중간 계층에서 보안을 적용하는 것이 선호되더라도 다음과 같이 데이터베이스에서 보안을 적용하는 데는 여러 가지 이유가 있습니다.

  • 당신은 선택의 여지가 없다, 아마도 레거시 이유로 또는 아마도 결정은 단순히 당신의 손에 없기 때문에.
  • 데이터베이스는 다양한 애플리케이션에서 액세스하며 단일 애플리케이션을 기반으로 보안을 구성할 수 없습니다.
  • 데이터베이스를 예측할 수 있게 보호할 수 있습니다. 엔터프라이즈용 데이터를 데이터베이스에 보관하는 경우 데이터베이스 주위에 꽉 찬 마차를 그리고 누가 볼 수 있는지 제어하는 데 도움이 될 수 있습니다.
  • 데이터베이스에서 원래 클라이언트를 인증하면 데이터베이스에서 수행한 작업을 자세히 로깅할 수 있습니다.
  • 일부 데이터는 특정 사용자에게 기본적으로 바인딩되며, 매우 세분화된 액세스 결정을 내리는 논리는 데이터와 가까운 데이터베이스 자체에서 가장 효율적으로 수행될 수 있습니다.

데이터베이스와 COM+ 애플리케이션의 보안을 동시에 설계할 때 대부분의 문제는 데이터 자체의 특성 및 액세스하는 사용자와의 관계와 관련이 있습니다. 예측 가능한 범주의 사용자가 액세스할 수 있는 데이터를 사용하면 역할을 사용하여 중간 계층에서 액세스를 제어하는 것이 효율적입니다. 매우 작은 사용자 클래스에 복잡하게 바인딩된 데이터를 사용하는 경우 이러한 관계는 종종 데이터 자체로 표현되어야 하므로 데이터베이스에서 일부 보안을 적용해야 합니다.

데이터베이스에서 보안 적용의 성능 영향

데이터베이스에서 사용자를 인증하거나 권한을 부여하는 경우 이를 지원하려면 사용자 ID를 데이터베이스로 전파해야 합니다. 데이터베이스가 중간 계층 애플리케이션을 신뢰하는 경우 매개 변수에 사용자 보안 정보를 전달할 수 있습니다. 그렇지 않으면 서버 애플리케이션이 클라이언트를 가장해야 하므로 사용자의 ID로 데이터베이스를 통해 호출해야 합니다. 다음과 같은 성능에 영향을 미칠 수 있습니다.

  • 클라이언트를 가장하는 것은 애플리케이션 ID에서 직접 호출하는 것보다 훨씬 느려질 수 있습니다. 자세한 내용은 클라이언트 가장 및 위임을 참조하세요.
  • 특정 사용자 ID로 이루어진 데이터베이스 연결을 풀할 수 없습니다.
  • 데이터베이스 자체에 논리를 추가하면 크기 조정 병목 현상이 발생할 위험이 있습니다.

다중 계층 애플리케이션에서 데이터 보안을 위한 기본 시나리오

다중 계층 애플리케이션 보안