증상
다음과 같은 경우를 생각해 볼 수 있습니다.
-
SQL Server 2016 및 2017에 SQL CLR 함수가 있습니다.
-
CLR 함수는 EXECUTE AS 문을 호출하는 등 가장 호출을 통해 Transact-SQL 문을 호출합니다.
이 시나리오에서는 실행이 실패하고 다음 오류 메시지가 표시됩니다.
Msg 6522, Level 16, State 1, Procedure PrcedureName, Line 0 [Batch Start Line LineNumber]
사용자 정의 루틴 또는 집계 "ProcedureName"을 실행하는 동안 .NET Framework 오류가 발생했습니다.
System.Data.SqlClient.SqlException: 서버 보안 주체 "LoginName"이 현재 보안 컨텍스트에서 "DatabaseName" 데이터베이스에 액세스할 수 없습니다.
해결 방법
이 수정 사항은 SQL Server 2017의 누적 업데이트 1에 포함되어 있습니다.
SQL Server 2016에 대한 서비스 팩 정보
이 문제는 SQL Server 다음 서비스 팩에서 해결되었습니다.
약 SQL Server 2017 빌드
SQL Server 2017의 각 새 빌드에는 이전 빌드에 있던 모든 핫픽스 및 보안 수정 사항이 포함되어 있습니다. SQL Server 2017용 최신 빌드를 설치하는 것이 좋습니다.
서비스 팩은 누적됩니다. 각 새 서비스 팩에는 이전 서비스 팩에 있는 모든 수정 사항이 새 수정 사항과 함께 포함되어 있습니다. 최신 서비스 팩과 해당 서비스 팩에 대한 최신 누적 업데이트를 적용하는 것이 좋습니다. 최신 서비스 팩을 설치하기 전에 이전 서비스 팩을 설치할 필요가 없습니다. 최신 서비스 팩 및 최신 누적 업데이트에 대한 자세한 내용은 다음 문서의 표 1을 사용합니다.
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.
참고 자료
Microsoft에서 소프트웨어 업데이트를 설명하는 데 사용하는 용어 에 대해 알아봅니다.