다음을 통해 공유


CLR 통합 보안

.NET Framework CLR(공용 언어 런타임)과의 SQL Server 통합에 대한 보안 모델에서는 SQL Server 내에서 실행되는 서로 다른 유형의 CLR 개체와 CLR이 아닌 개체 간의 액세스를 관리하고 보호합니다. 이러한 개체는 Transact-SQL 문이나 서버에서 실행되는 다른 CLR 개체에서 호출할 수 있습니다. 개체 간의 호출을 링크라고 합니다. 이러한 개체에 대해 수행되는 보안 검사의 유형은 관련된 링크의 유형에 따라 다릅니다.

CLR 통합 보안 모델의 목표는 다음과 같습니다.

  • 기본적으로 SQL Server에서 관리되는 사용자 코드를 실행할 때 SQL Server의 무결성 및 안정성이 손상되지 않아야 합니다. SQL Server의 견고성을 손상할 수 있는 작업을 수행하려면 높은 수준의 사용 권한으로 보호해야 합니다.

  • 관리되는 사용자 코드에서 데이터베이스의 사용자 데이터나 다른 사용자 코드에 무단으로 액세스하지 못하도록 해야 합니다. 사용자 정의 코드는 해당 코드를 호출한 사용자 세션의 보안 컨텍스트에서 해당 보안 컨텍스트에 대한 올바른 권한을 사용하여 실행해야 합니다.

  • 사용자 코드를 로컬 데이터 액세스 및 계산용으로만 사용하여 사용자 코드에서 서버 외부의 리소스에 액세스하지 못하도록 제어해야 합니다.

  • 사용자 정의 코드가 SQL Server 프로세스에서 실행된다는 것 때문에 시스템 리소스에 무단으로 액세스할 수 있게 되면 안 됩니다.

SQL Server에서는 이제 SQL Server의 사용자 기반 모델과 CLR의 코드 액세스 기반 보안 모델을 통합합니다. 이러한 통합된 보안 방법의 일부 이점에 대해 이 섹션에서 설명합니다.

다음 표에서는 이 섹션에서 다루는 항목을 나열합니다.

참고 항목

개념