CLR strict security

Se aplica a: SQL Server (todas las versiones admitidas)

Controla la interpretación del permiso SAFE, EXTERNAL ACCESS, UNSAFE en SQL Server.

Value Descripción
0 Deshabilitada: se proporciona para la compatibilidad con versiones anteriores. El valor Disabled no es recomendable.
1 Habilitada: hace que el Motor de base de datos pase por alto la información de PERMISSION_SET relativa a los ensamblados y los interprete siempre como UNSAFE. Enabled es el valor predeterminado, a partir de SQL Server 2017 (14.x).

Advertencia

CLR usa la seguridad de acceso del código (CAS) de .NET Framework, que ya no se admite como un límite de seguridad. Un ensamblado CLR creado con la opción PERMISSION_SET = SAFE puede tener acceso a los recursos externos del sistema, llamar a código no administrado y adquirir privilegios sysadmin. A partir de SQL Server 2017 (14.x), se incluye una opción de sp_configure denominada clr strict security para mejorar la seguridad de los ensamblados CLR. La opción clr strict security está habilitada de forma predeterminada y trata los ensamblados SAFE y EXTERNAL_ACCESS como si estuvieran marcados con UNSAFE. La opción clr strict security se puede deshabilitar para permitir la compatibilidad con versiones anteriores, pero no se recomienda hacerlo. Microsoft recomienda que todos los ensamblados estén firmados con un certificado o clave asimétrica con el correspondiente inicio de sesión que tenga concedido el permiso UNSAFE ASSEMBLY en la base de datos maestra. Los administradores de SQL Server también pueden agregar ensamblados a una lista de los ensamblados en los que el motor de base de datos debe confiar. Para más información, vea sys.sp_add_trusted_assembly.

Observaciones

Cuando se habilita, la opción PERMISSION_SET en las instrucciones CREATE ASSEMBLY y ALTER ASSEMBLY se omite en tiempo de ejecución, pero las opciones PERMISSION_SET se conservan en los metadatos. Si la opción se omite, se reduce el riesgo de romper las instrucciones de código existentes.

CLR strict security es una advanced option.

Importante

Después de habilitar la seguridad estricta, los ensamblados que no estén firmados no podrán cargarse. Debe modificar (o eliminar y volver a crear) cada ensamblado para que se firme con un certificado o clave asimétrica que tenga el inicio de sesión correspondiente con el permiso UNSAFE ASSEMBLY en el servidor.

Permisos

Para cambiar esta opción

Debe disponer del permiso CONTROL SERVER o pertenecer al rol fijo de servidor sysadmin.

Para crear un ensamblado CLR

Los siguientes permisos son necesarios para crear un ensamblado CLR cuando la opción CLR strict security está habilitada:

  • El usuario debe tener el permiso CREATE ASSEMBLY.
  • Además, se debe dar una de las siguientes condiciones:
    • El ensamblado debe estar firmado con un certificado o clave asimétrica que tenga el inicio de sesión correspondiente con el permiso UNSAFE ASSEMBLY en el servidor. Se recomienda firmar el ensamblado.
    • La base de datos tiene la propiedad TRUSTWORTHY establecida en ON y pertenece a un inicio de sesión que tiene el permiso UNSAFE ASSEMBLY en el servidor. Esta opción no se recomienda.

Consulte también

Opciones de configuración de servidor (SQL Server)
sp_configure (Transact-SQL)
clr enabled (opción de configuración del servidor)