Compartir vía


Establecimiento de una directiva de contraseña personalizada para inicios de sesión de SQL en SQL Server en Linux

Se aplica a: SQL Server 2022 (16.x) y versiones posteriores en Linux

En este artículo se describe cómo configurar y administrar directivas de contraseña de inicio de sesión de SQL a partir de la actualización acumulativa (CU) 23 de SQL Server 2022 (16.x) y SQL Server 2025 (17.x).

Las directivas de contraseñas son un aspecto fundamental de la protección de cualquier entorno de base de datos. Aplican:

  • Complejidad
  • Vencimiento
  • Cambios

Este mecanismo garantiza que los inicios de sesión que utilizan la autenticación de SQL Server sean seguros.

Nota:

Las directivas de contraseña están disponibles en Windows. Para obtener más información, consulte Directiva de contraseñas.

Configuración de directiva personalizada

En SQL Server 2025 (17.x) y versiones posteriores en Linux, puede establecer los siguientes parámetros de configuración en el mssql.conf archivo para aplicar una directiva de contraseña personalizada.

Opción de configuración Descripción
passwordpolicy.passwordminimumlength Establece el número mínimo de caracteres necesarios para una contraseña. Las contraseñas pueden tener hasta 128 caracteres.
passwordpolicy.passwordhistorylength Establece el número de contraseñas anteriores que recuerda el sistema.
passwordpolicy.passwordminimumage Establece la duración mínima que debe esperar un usuario antes de volver a cambiar su contraseña.
passwordpolicy.passwordmaximumage Establece la duración máxima que se puede usar una contraseña antes de que se deba cambiar.

Nota:

Actualmente, puede establecer el passwordminimumlength en menos de ocho caracteres. La contraseña debe seguir la directiva de contraseña predeterminada de SQL Server. De forma predeterminada, la contraseña debe tener al menos ocho caracteres y contener caracteres de tres de los siguientes cuatro conjuntos: mayúsculas, minúsculas, dígitos en base 10 y símbolos. Las contraseñas pueden tener hasta 128 caracteres. Use contraseñas lo más largas y complejas posible.

Puede configurar directivas de contraseña personalizadas para los inicios de sesión de autenticación de SQL en SQL Server en Linux de dos maneras:

Establecimiento de una directiva de contraseña personalizada con adutil

En entornos en los que la administración de directivas está centralizada en un servidor de Active Directory (AD), los administradores de dominio establecen y modifican los valores de directiva de contraseñas en el servidor de AD. La máquina Linux que ejecuta SQL Server también debe formar parte del dominio de Windows.

Use adutil para capturar la directiva de contraseña del servidor de AD y escribirla en el mssql.conf archivo. Este método ofrece la ventaja de la administración centralizada y garantiza una aplicación coherente de directivas en el entorno de SQL Server.

Requisitos para adutil

  1. Establezca una sesión autenticada de Kerberos:

    • Ejecute kinit con sudo para obtener o renovar el vale de concesión de vales (TGT) de Kerberos.

    • Use una cuenta con privilegios para el comando kinit. La cuenta necesita permiso para conectarse al dominio.

    En el ejemplo siguiente, reemplace por <user> una cuenta que tenga privilegios elevados en el dominio.

    sudo kinit <user>@CONTOSO.COM
    
  2. Compruebe que el billete está concedido.

    sudo klist
    
  3. Para actualizar la directiva de contraseñas, consulte el dominio con adutil:

    sudo adutil updatepasswordpolicy
    

    Si el comando se ejecuta correctamente, la salida es similar al ejemplo siguiente:

    Successfully updated password policy in mssqlconf.
    Restart SQL Server to apply the changes.
    

    Opcionalmente, puede agregar la --path opción al comando anterior. Puede usar esta opción si tiene la herramienta mssql-conf en una ubicación diferente de la ruta de acceso predeterminada. La ruta de acceso predeterminada es /opt/mssql/bin/mssql-conf.

  4. Reinicie el servicio SQL Server:

    sudo systemctl restart mssql-server
    

Establecimiento manual de una directiva de contraseña personalizada mediante mssql-conf

Puede establecer la directiva de contraseña de inicio de sesión de autenticación de SQL actualizando los parámetros del mssql.conf archivo con mssql-conf. Este enfoque proporciona simplicidad y control directo sobre la configuración de la directiva.

Use este método cuando el host de Linux que ejecuta SQL Server no forma parte del dominio y no hay ningún controlador de dominio para obtener las directivas de contraseña.

Ejecute los siguientes comandos mssql-conf para establecer cada propiedad de configuración de directiva.

  1. Establezca la longitud mínima de la contraseña en 14 caracteres, cumpliendo los requisitos de complejidad descritos en la directiva contraseña.

    sudo /opt/mssql/bin/mssql-conf set passwordpolicy.passwordminimumlength 14
    
  2. Establezca la antigüedad mínima de la contraseña en un día. Los usuarios pueden cambiar su contraseña después de un día.

    sudo /opt/mssql/bin/mssql-conf set passwordpolicy.passwordminimumage 1
    
  3. Establezca la longitud del historial de contraseñas en 8. Los usuarios deben usar ocho contraseñas únicas antes de reutilizar una antigua.

    sudo /opt/mssql/bin/mssql-conf set passwordpolicy.passwordhistorylength 8
    
  4. Establezca la antigüedad máxima de la contraseña en 45 días. Un usuario puede usar una contraseña durante un máximo de 45 días antes de que el usuario deba cambiarla.

    sudo /opt/mssql/bin/mssql-conf set passwordpolicy.passwordmaximumage 45
    
  5. Reinicie el servicio SQL Server.

    sudo systemctl restart mssql-server
    

Limitaciones

Actualmente, passwordminimumlength no se puede establecer en más de 14 caracteres.

Después de actualizar la directiva de contraseña de grupo en Active Directory, debe ejecutar manualmente el adutil updatepasswordpolicy comando para actualizar mssql.conf. Este comando no se ejecuta automáticamente. Asegúrese de que la máquina Linux que ejecuta SQL Server forma parte del dominio o establézcala manualmente mediante mssql-conf.

En Active Directory, puede definir o anular la definición de cada directiva de contraseña de nivel de grupo mediante una casilla.

Captura de pantalla de la configuración de directiva de seguridad de longitud mínima de contraseña.

Sin embargo, la desactivación de la directiva no la deshabilita en SQL Server en Linux. Para evitar aplicar la directiva de contraseña personalizada, actualice la configuración en mssql-conf en lugar de usar la casilla.