Seguridad de la integración CLR

El modelo de seguridad de la integración de SQL Server con .NET Framework Common Language Runtime (CLR) administra y protege el acceso entre los distintos tipos de objetos que se ejecutan dentro de SQL Server, tanto objetos CLR como objetos no CLR. Es posible llamar a estos objetos mediante una instrucción Transact-SQL u otro objeto CLR que se ejecute en el servidor. Las llamadas entre objetos reciben el nombre de vínculos. Los tipos de comprobaciones de seguridad que se realizan en estos objetos dependen de los tipos de vínculos implicados.

El modelo de seguridad de la integración CLR tiene estos objetivos:

  • De forma predeterminada, el hecho de ejecutar código de usuario administrado en SQL Server no debería poner en peligro la integridad y la estabilidad de SQL Server. La realización de operaciones que podrían poner en peligro la estabilidad de SQL Server debería protegerse mediante los permisos de alto nivel pertinentes.

  • El código de usuario administrado no debería obtener un acceso no autorizado a los datos del usuario ni a ningún otro código de usuario de la base de datos. El código definido por el usuario debería ejecutarse bajo el contexto de seguridad de la sesión del usuario que lo invocó y con los privilegios adecuados para ese contexto de seguridad.

  • Debería haber controles que restringiesen el acceso del código de usuario a cualquier recurso situado fuera del servidor, y utilizarlo única y exclusivamente para el acceso a datos local y la realización de cálculos.

  • El código definido por el usuario no debería poder obtener un acceso no autorizado a los recursos del sistema por el hecho de ejecutarse en el proceso de SQL Server.

Ahora, SQL Server integra el modelo de seguridad basado en usuario de SQL Server con el modelo de seguridad basado en acceso a código de CLR. Algunas de las ventajas que este enfoque combinado ofrece para la seguridad se describen en esta sección.

En la siguiente tabla se muestran los temas de esta sección.