CLR strict security
적용 대상:SQL Server
SQL Server에서 SAFE
, EXTERNAL ACCESS
, UNSAFE
권한의 해석을 제어합니다.
값 | 설명 |
---|---|
0 | 사용 안 함 - 이전 버전과의 호환성을 위해 제공됩니다. Disabled 값은 권장되지 않습니다. |
1 | 사용 - 데이터베이스 엔진 어셈블리에 대한 PERMISSION_SET 정보를 무시하고 항상 UNSAFE 로 해석합니다. SQL Server 2017(14.x)부터 기본값은 Enabled 입니다. |
Warning
CLR은 더 이상 보안 경계로 지원되지 않는 .NET Framework의 CAS(코드 액세스 보안)를 사용합니다. PERMISSION_SET = SAFE
로 만든 CLR 어셈블리에서 외부 시스템 리소스에 액세스하고, 비관리 코드를 호출하고, sysadmin 권한을 얻을 수 있습니다. SQL Server 2017(14.x)부터 CLR 어셈블리의 보안을 강화하기 위해 clr strict security
라는 sp_configure
옵션이 도입되었습니다. clr strict security
는 기본적으로 사용되며 SAFE
및 EXTERNAL_ACCESS
어셈블리가 UNSAFE
로 표시된 것처럼 처리됩니다. clr strict security
옵션은 이전 버전과의 호환성을 위해 사용하지 않도록 설정할 수 있지만 권장하지는 않습니다. 모든 어셈블리는 master 데이터베이스에서 UNSAFE ASSEMBLY
권한이 부여된 해당 로그인이 포함된 인증서 또는 비대칭 키로 서명하는 것이 좋습니다. 또한 SQL Server 관리자는 데이터베이스 엔진에서 신뢰해야 하는 어셈블리 목록에 어셈블리를 추가할 수도 있습니다. 자세한 내용은 sys.sp_add_trusted_assembly를 참조하세요.
설명
사용하도록 설정되면 CREATE ASSEMBLY
및 ALTER ASSEMBLY
문의 PERMISSION_SET
옵션은 런타임에서 무시되지만 PERMISSION_SET
옵션은 메타데이터에서 유지됩니다. 이 옵션을 무시하면 기존 코드 문의 중단을 최소화합니다.
CLR strict security
는 advanced option
입니다.
Important
strict security(엄격한 보안)를 사용하도록 설정하면 서명되지 않은 어셈블리는 로드되지 않습니다. 서버에 대한 UNSAFE ASSEMBLY
권한이 있는 해당 로그인이 포함된 인증서 또는 비대칭 키로 서명되도록 각 어셈블리를 변경하거나 삭제한 다음 다시 만들어야 합니다.
사용 권한
이 옵션을 변경하려면,
CONTROL SERVER
권한 또는 sysadmin
고정 서버 역할의 멤버 자격이 필요합니다.
CLR 어셈블리를 만들려면
CLR strict security
를 사용할 때 CLR 어셈블리를 만드는 데 필요한 권한은 다음과 같습니다.
- 사용자에게
CREATE ASSEMBLY
권한이 있어야 합니다. - 다음 조건 중 하나가 충족되어야 합니다.
- 어셈블리는 서버에 대한
UNSAFE ASSEMBLY
권한이 있는 해당 로그인이 포함된 인증서 또는 비대칭 키로 서명됩니다. 어셈블리에 서명하는 것이 좋습니다. - 데이터베이스는
ON
으로 설정된TRUSTWORTHY
속성을 가지고 있고 서버에 대한UNSAFE ASSEMBLY
권한이 있는 로그인으로 소유됩니다. 이 방법은 권장되지 않습니다.
- 어셈블리는 서버에 대한
참고 항목
서버 구성 옵션(SQL Server)
sp_configure(Transact-SQL)
CRL 사용 서버 구성 옵션
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기