Symptomer
I SQL Server 2019 på Linux kan de eksterne satellitprocesscripts som R, Python ikke få adgang til nogen mapper uden for deres arbejdsmappe.
Løsning
Dette problem er rettet i følgende kumulative opdatering til SQL Server:
Om kumulative opdateringer til SQL Server:
Hver ny kumulativ opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige kumulative opdatering. Se de seneste kumulative opdateringer til SQL Server:
Flere oplysninger
Du kan tilpasse de mapper, som de eksterne processer har adgang til, ved at bruge værktøjet mssql-conf til at angive eller fjerne indstillingen for "datadirectories" i sektionen udvidelse i konfigurationsfilen /var/opt/mssql/mssql.conf .
Værdien af indstillingen er en kolonsepareret mappeliste, som vil blive eksponeret for satellitscripts. Microsoft SQL Server Launchpad Daemon skal genstartes, når du angiver eller fjerner denne indstilling.
Satellitprocesserne kører som mssql_satellite særlig bruger, så de arver de samme læse-/skrive-/udførelsestilladelser til de mapper, der er angivet i denne indstilling , og som er givet til denne specielle bruger.
Eksempel:
#/bin/bash: /opt/mssql/bin/mssql-conf set extensibility.datadirectories "/opt/mssql/bin:/home/user/rscripts"
SQL Server Extensibility Launchpad Daemon skal genstartes for at anvende denne indstilling. Kør 'systemctl restart mssql-launchpadd.service'.
Indholdet af /var/opt/mssql/mssql.conf
[Mulighed for udvidelse]
datadirectories = /opt/mssql/bin:/var
#/bin/bash: /opt/mssql/bin/mssql-conf unset extensibility.datadirectories
SQL Server Extensibility Launchpad Daemon skal genstartes for at anvende denne indstilling. Kør venligst
'systemctl restart mssql-launchpadd.service'.
Indholdet af /var/opt/mssql/mssql.conf
[Mulighed for udvidelse]
Status
Dette er som standard designet sådan, så eksterne processer ikke tilfældigt kan få adgang til nogen systemmapper.
Referencer
Få mere at vide om den terminologi, som Microsoft bruger til at beskrive softwareopdateringer.