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.
En este artículo se describen las cuentas de servicio necesarias y los permisos del sistema de archivos para SQL Server en Linux. Para obtener más información sobre SQL Server en permisos de Windows, consulte Configurar cuentas de servicio y permisos de Windows.
Principios integrados de Windows
Aunque SQL Server en Linux se ejecuta en la cuenta de sistema operativo de mssql, los siguientes principales de Windows existen en la capa de SQL Server por motivos de compatibilidad. No quite ni denieguelos a menos que comprenda completamente los riesgos.
| Principal | Rol predeterminado de SQL Server | Detalles |
|---|---|---|
BUILTIN\Administrators |
sysadmin | Se asigna a los administradores de nivel raíz del host. Algunos objetos del sistema se ejecutan en el contexto de esta cuenta. |
NT AUTHORITY\SYSTEM |
public | Identificador de seguridad (SID) reservado para la cuenta de WindowsSYSTEM. Aun así, creada para que los scripts multiplataforma que lo esperan tengan éxito. |
NT AUTHORITY\NETWORK SERVICE |
Ninguno (solo compatibilidad) | Históricamente, la cuenta de inicio predeterminada para varios servicios de SQL Server en Windows. Presente solo para la compatibilidad con versiones anteriores. No lo usa el propio motor de base de datos de SQL Server en Linux. |
Propiedad de archivos y directorios
El mssql usuario y mssql el grupo (mssql:mssql) deben ser propietarios de todos los archivos de la /var/opt/mssql carpeta, con acceso de lectura y escritura para ambos. Si cambias el umask predeterminado (0022) o usas puntos de montaje alternativos, debes volver a aplicar estos permisos manualmente.
Los permisos predeterminados para la mssql carpeta son los siguientes:
drwxr-xr-x 3 root root 4096 May 14 17:17 ./
drwxr-xr-x 13 root root 4096 Jan 7 2025 ../
drwxrwx--- 7 mssql mssql 4096 May 14 17:17 mssql/
Los permisos predeterminados para el contenido de la mssql carpeta son los siguientes:
drwxrwx--- 7 mssql mssql 4096 May 14 17:17 ./
drwxr-xr-x 3 root root 4096 May 14 17:17 ../
drwxr-xr-x 5 mssql mssql 4096 May 14 17:17 .system/
drwxr-xr-x 2 mssql mssql 4096 May 14 17:17 data/
drwxr-xr-x 3 mssql mssql 4096 Sep 16 22:57 log/
-rw-r--r-- 1 root root 85 May 14 17:17 mssql.conf
drwxrwxr-x 2 mssql mssql 4096 May 14 17:17 secrets/
drwxr-xr-x 2 mssql mssql 4096 May 14 17:17 security/
Para obtener más información sobre cómo cambiar la ubicación de los datos de usuario, la ubicación del archivo de registro o las ubicaciones de registro y la base de datos del sistema, consulte Configuración de SQL Server en Linux con la herramienta mssql-conf.
Directorios típicos de SQL Server
| Purpose | Ruta de acceso predeterminada | Detalles |
|---|---|---|
| Bases de datos del sistema y del usuario | /var/opt/mssql/data |
Incluye master, model, tempdby todas las bases de datos nuevas a menos que mssql-conf las redirija. Para obtener más información, consulte Cambio de la ubicación predeterminada para las bases de datos del sistema. |
| Registros de transacciones (si están separados) |
/var/opt/mssql/data, o la ruta establecida mediante mssql-conf set filelocation.defaultlogdir. |
Mantén la misma propiedad si mueves los registros de transacciones. Para obtener más información, consulte Cambio de la ubicación predeterminada de los datos o del directorio de registro. |
| Backups | /var/opt/mssql/data |
Crea y configura con chown antes de la primera copia de seguridad, o al asignar un volumen o directorio. Para obtener más información, consulte Cambio de la ubicación predeterminada del directorio de copia de seguridad. |
| Registros de errores y registros de eventos extendidos (XE) | /var/opt/mssql/log |
También aloja la sesión predeterminada de salud del sistema XE. Para obtener más información, consulte Cambio de la ubicación predeterminada del directorio del archivo de registro de errores. |
| Volcados de memoria | /var/opt/mssql/log |
Almacena los dumps y DBCC CHECK* dumps de núcleos. Para obtener más información, consulta Cambiar la ubicación predeterminada del directorio de volcados. |
| Secretos de seguridad | /var/opt/mssql/secrets |
Almacena elementos como certificados TLS y claves maestras de columna. |
Roles mínimos de SQL Server para cada agente
| Agente | Se ejecuta como (Linux) | Se conecta a | Roles y derechos de base de datos necesarios |
|---|---|---|---|
| Agente de instantáneas |
mssql (a través de una tarea de Agente SQL) |
Distributor | db_owner en la base de datos de distribución; lectura/escritura en la carpeta de instantáneas |
| Agente lector de logs | mssql |
Publicador y distribuidor | db_owner en la base de datos y distribución de publicaciones. Puede que necesites sysadmin cuando uses initialize desde copia de seguridad |
| Agente de distribución (push) | mssql |
Distribuidor al suscriptor | db_owner en distribución; db_owner en la base de datos de suscripciones. Leer la carpeta de instantáneas. Miembro PAL. |
| Agente de Distribución (pull) |
mssql (en el suscriptor) |
Del suscriptor al distribuidor Distribuidor al suscriptor |
Igual que el agente de distribución (push), pero se aplican los permisos de uso compartido de instantáneas en el host del suscriptor |
| Agente de mezcla | mssql |
Publicador, distribuidor, suscriptor | db_owner en la distribución. Miembro PAL. Leer la carpeta de instantáneas. Lectura y escritura en bases de datos de publicación y suscripción. |
| Agente de lectura de cola | mssql |
Distributor | db_owner en la distribución. Se conecta a Publisher con db_owner en la base de datos de publicaciones. |
procedimientos recomendados
El mssql usuario y grupo que utiliza SQL Server es una cuenta que no puede iniciar sesión por defecto. Mantenlo así por motivos de seguridad. Utiliza autenticación de Windows para SQL Server en Linux siempre que sea posible. Para obtener más información sobre cómo configurar la autenticación de Windows para SQL Server en Linux, consulte Tutorial: Uso de adutil para configurar la autenticación de Active Directory con SQL Server en Linux.
Restrinja aún más los permisos de archivo (mediante el comando chmod 700) siempre que el directorio no necesite acceso a grupos.
Al vincular directorios de host o compartidos NFS en contenedores o máquinas virtuales, créalos primero y luego mapea UID 10001 (por defecto para mssql).
Evite conceder sysadmin a los inicios de sesión de aplicaciones. Utilice en su lugar roles granulares y EXECUTE AS envoltorios. Desactiva o cambia el nombre a la sa cuenta una vez que crees otra cuenta de administrador del sistema . Para obtener más información, consulte Deshabilitación de la cuenta sa como procedimiento recomendado.