확장 저장 프로시저

중요 정보중요

Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. 대신 CLR 통합을 사용하십시오.

확장 저장 프로시저를 사용하면 C 언어와 같은 프로그래밍 언어로 자신의 외부 루틴을 만들 수 있습니다. 확장 저장 프로시저는 일반 저장 프로시저와 비슷하며 일반 저장 프로시저와 같은 방식으로 실행됩니다. 매개 변수를 확장 저장 프로시저에 보낼 수 있고, 결과 및 결과 상태를 반환할 수 있습니다.

확장 저장 프로시저는 SQL Server 인스턴스가 동적으로 로드하고 실행할 수 있는 DLL입니다. 확장 저장 프로시저는 SQL Server 인스턴스의 주소 공간에서 직접 실행되며 SQL Server 확장 저장 프로시저 API를 사용하여 프로그래밍합니다.

[!참고]

Microsoft .NET Framework 공용 언어 런타임을 인스턴스화하고 관리 코드를 실행하는 데 확장 저장 프로시저를 사용하지 마십시오. 이 시나리오는 SQL Server 이후 버전에서는 지원되지 않습니다. CLR Integration을 사용하면 확장 저장 프로시저를 보다 강력하고 안전한 방법으로 작성할 수 있습니다.

확장 저장 프로시저를 만든 다음 sysadmin 고정 서버 역할의 멤버가 SQL Server 인스턴스에서 확장 저장 프로시저를 등록하고 다른 사용자에게 이 프로시저를 실행할 수 있는 권한을 부여할 수 있습니다. master 데이터베이스에만 확장 저장 프로시저를 추가할 수 있습니다.

[!참고]

확장 저장 프로시저는 메모리 손실 및 서버의 성능과 안정성을 저하시키는 다른 문제를 유발할 수 있습니다. 참조되는 데이터가 들어 있는 인스턴스와는 별도의 SQL Server 인스턴스에 확장 저장 프로시저를 저장해야 합니다. 또한 분산 쿼리를 사용하여 데이터베이스에 액세스해야 합니다. 자세한 내용은 분산 쿼리를 참조하십시오.

보안

시스템 관리자는 확장 저장 프로시저를 서버에 추가하고 다른 사용자에게 실행 권한을 부여하기 전에 각 확장 저장 프로시저를 철저히 검토하여 유해한 악성 코드가 포함되지는 않았는지를 확인해야 합니다.

다음과 같은 추가적인 보안 지침이 있습니다.

  • 모든 사용자 입력에 대해 유효성 검사 수행

  • 유효성 검사를 수행하기 전에는 사용자 입력을 연결하지 않음

  • 유효성 검사가 수행되지 않은 사용자 입력으로부터 생성된 명령은 실행하지 않음. 자세한 내용은 SQL 인젝션을 참조하십시오.