Безопасность интеграции со средой CLR

Модель безопасности для интеграции SQL Server со средой .NET Framework CLR позволяет управлять доступом и обеспечивать безопасность этого доступа для различных типов объектов (как CLR, так и не CLR), выполняемых в SQL Server. Для вызова этих объектов может применяться инструкция Transact-SQL или другой объект CLR, выполняемый на сервере. Вызовы между этими объектами называются связями. Тип проверки безопасности, которая выполняется на этих объектах, зависит от типа связи.

Модель безопасности для интеграции со средой CLR решает следующие задачи.

  • По умолчанию выполнение управляемого пользовательского кода в SQL Server не должно угрожать целостности и стабильности SQL Server. Выполнение операций, потенциально небезопасных для устойчивости SQL Server, должно быть защищено соответствующими разрешениями высокого уровня.

  • Управляемый пользовательский код не должен получать несанкционированный доступ к пользовательским данным или коду других пользователей в базе данных. Пользовательский программный код должен выполняться в контексте безопасности пользовательского сеанса, который его вызывает, и обладать нужными правами для этого контекста безопасности.

  • Должны существовать элементы управления, ограничивающие доступ пользовательского кода к любым ресурсам за пределами сервера. Он должен использоваться только для доступа к местным данным и для вычислений.

  • Пользовательский программный код не должен получать несанкционированный доступ к системным ресурсам только потому, что он выполняется в процессе SQL Server.

Теперь SQL Server интегрирует модель безопасности SQL Server, контролирующую доступ пользователя, с моделью безопасности CLR, контролирующей доступ кода. В этом разделе обсуждаются некоторые преимущества такого интегрированного подхода.

В следующей таблице приводится список подразделов данного раздела.