다음을 통해 공유


분류자 함수 작성 시 고려 사항

리소스 관리자가 지원하는 사용자 정의 함수의 반환 값은 세션을 분류하는 데 사용되며, 이후 이 세션은 적절한 작업 그룹으로 라우팅됩니다.

분류자 사용자 정의 함수는 들어오는 요청을 분류하는 데 사용하기 전에 테스트 및 최적화를 거쳐야 합니다. 함수를 잘못 작성할 경우 제한 시간이 초과되어 시스템을 사용할 수 없게 되고, 이로 인해 구성 정보가 노출될 수 있습니다. DAC(관리자 전용 연결)는 분류의 영향을 받지 않으며 리소스 관리자가 실행되면서 들어오는 세션을 분류 중일 때 사용할 수 있으므로 DAC를 사용하면 잘못 작성된 분류자 함수의 문제를 해결할 수 있습니다. 자세한 내용은 전용 관리자 연결 사용을 참조하십시오.

[!참고]

문제 해결을 위해 DAC를 사용할 수 없는 경우 단일 사용자 모드로 시스템을 다시 시작할 수 있습니다. 단일 사용자 모드는 분류의 영향을 받지 않지만 리소스 관리자가 실행 중일 때 이를 진단할 수 없습니다.

분류자 함수에 기존 시스템 함수를 사용하고 이러한 함수가 반환하는 값을 세션 분류에 사용할 수 있습니다.

함수

분류에 사용할 수 있는 시스템 함수는 다음과 같습니다. HOST_NAME(), APP_NAME(), SUSER_NAME(), SUSER_SNAME(), IS_SRVROLEMEMBER(), 및 IS_MEMBER()가 있습니다.

주의 사항주의

분류에 사용되는 속성을 반환하는 함수를 만들 때에는 속성이 안전한지 여부를 고려해야 합니다. 안전하지 않을 경우 특성 사용에 따르는 위험을 평가해야 합니다. HOST_NAME() 및 APP_NAME() 함수는 안전하지 않은 속성을 반환합니다. 예를 들어 APP_NAME()은 응용 프로그램 연결 문자열에 제공된 아무 값이나 반환할 수 있습니다.

LOGINPROPERTY 함수는 분류에 사용할 수 있는 두 개의 속성인 DefaultDatabase 및 DefaultLanguage로 업데이트되었습니다. 또한 ORIGINAL_DB_NAME 함수를 사용하여 사용자 연결 문자열에 지정된 데이터베이스의 이름을 확인할 수 있습니다.

리소스 관리자는 또한 CONNECTIONPROPERTY 함수를 구현하여 분류에 사용할 수 있는 추가 속성을 제공합니다. 이 함수는 요청이 sys.dm_exec_connections 동적 관리 뷰에서 해당하는 열로 발생하는 고유한 연결의 여러 속성에 대해 동일한 값을 반환합니다.