Compartir a través de


Configuración del servidor: CLR Strict Security

Se aplica a: SQL Server

Controla la interpretación del permiso SAFE, EXTERNAL_ACCESS o UNSAFE en SQL Server. Para obtener más información sobre estos permisos, consulte Diseño de ensamblados.

Valor Descripción
0 Deshabilitado. Se proporciona para mantener la compatibilidad con versiones anteriores. No se recomienda establecer este valor en 0.
1 Habilitado. 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. En SQL Server 2017 (14.x) y versiones posteriores, 1 es el valor predeterminado.

Ya no se admite la seguridad de acceso del código

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. En SQL Server 2017 (14.x) y versiones posteriores, clr strict security trata los ensamblados SAFE y EXTERNAL_ACCESS como si estuvieran marcados como UNSAFE.

Recomendamos que firme todos los ensamblados 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 master. 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 esta opción se omite, se reduce el riesgo de romper las instrucciones de código existentes.

CLR strict security es advanced option.

Después de habilitar la seguridad estricta, los ensamblados que no estén firmados no pueden 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

Cambiar esta opción

Debe disponer del permiso CONTROL SERVER o una suscripción al rol fijo de servidor de administrador del sistema.

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.

  • 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. No se recomienda esta opción.

Ejemplos

El ejemplo siguiente muestra primero la configuración actual de la opción clr strict security y después establece el valor de la opción en 1 (habilitado).

EXEC sp_configure 'clr strict security';
GO
EXEC sp_configure 'clr strict security' , '1';
RECONFIGURE;
GO