Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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, vea Diseño de ensamblados.
| Valor | Descripción |
|---|---|
0 |
Deshabilitado. Se proporciona para mantener la compatibilidad con versiones anteriores. No se recomienda establecer este valor 0 en , ya que puede crear una vulnerabilidad de seguridad. |
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. |
La seguridad de acceso al código ya no es compatible
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.
Se recomienda firmar todos los ensamblados mediante un certificado o una 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, consulte 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 esté firmado con un certificado o una clave asimétrica que tenga un inicio de sesión correspondiente con el UNSAFE ASSEMBLY permiso en el servidor.
Permisos
Cambiar esta opción
Requiere el permiso CONTROL SERVER o la pertenencia al rol fijo de servidor sysadmin.
Crear un ensamblado CLR
Los permisos siguientes son necesarios para crear un ensamblado CLR cuando CLR strict security está habilitado:
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 ASSEMBLYen el servidor. Se recomienda firmar el ensamblado.La base de datos tiene la propiedad
TRUSTWORTHYestablecida enONy pertenece a un inicio de sesión que tiene el permisoUNSAFE ASSEMBLYen 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).
EXECUTE sp_configure 'clr strict security';
GO
EXECUTE sp_configure 'clr strict security', '1';
RECONFIGURE;
GO