CLR strict security
Se aplica a: SQL Server
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 enON
y pertenece a un inicio de sesión que tiene el permisoUNSAFE ASSEMBLY
en el servidor. Esta opción no se recomienda.
- El ensamblado debe estar firmado con un certificado o clave asimétrica que tenga el inicio de sesión correspondiente con el permiso
Consulte también
Opciones de configuración de servidor (SQL Server)
sp_configure (Transact-SQL)
clr enabled (opción de configuración del servidor)
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente las Cuestiones de GitHub como mecanismo de retroalimentación para el contenido y lo sustituiremos por un nuevo sistema de retroalimentación. Para más información, consulta:Enviar y ver comentarios de