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 enON
y pertenece a un inicio de sesión que tiene el permisoUNSAFE 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