Objawy
W programie SQL Server 2019 w systemie Linux zewnętrzne skrypty procesu satelitarnego, takie jak R, Python, nie mogą uzyskać dostępu do żadnych katalogów poza katalogiem roboczym.
Rozwiązanie
Ten problem został rozwiązany w następującej aktualizacji zbiorczej dla programu SQL Server:
Informacje o aktualizacjach zbiorczych programu SQL Server:
Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji skumulowanej. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:
Więcej informacji
Katalogi, do których procesy zewnętrzne mają dostęp, można dostosować przy użyciu narzędzia mssql-conf w celu ustawienia lub usunięcia ustawienia "katalogów danych" w sekcji rozszerzalności pliku konfiguracyjnego /var/opt/mssql/mssql.conf .
Wartością ustawienia jest rozdzielona dwukropkami lista katalogów, która będzie wystawiona na działanie skryptów satelitarnych. Demon Launchpad programu Microsoft SQL Server musi zostać ponownie uruchomiony po skonfigurowaniu lub usunięciu ustawienia tego ustawienia.
Procesy satelitarne są uruchamiane mssql_satellite użytkownika specjalnego, więc dziedziczą te same uprawnienia odczytu/zapisu/wykonania do katalogów określonych w tym ustawieniu, jakie są nadane temu użytkownikowi specjalnemu.
Przykład:
#/bin/bash: /opt/mssql/bin/mssql-conf set extensibility.datadirectories "/opt/mssql/bin:/home/user/rscripts"
Aby można było zastosować to ustawienie, należy ponownie uruchomić demona uruchamiania rozszerzalności programu SQL Server. Uruchom polecenie "systemctl restart mssql-launchpadd.service".
Zawartość pliku /var/opt/mssql/mssql.conf
[rozszerzalność]
DataDirectories = /opt/mssql/bin:/var
#/bin/bash: /opt/mssql/bin/mssql-conf unset extensibility.datadirectories
Aby można było zastosować to ustawienie, należy ponownie uruchomić demona uruchamiania rozszerzalności programu SQL Server. Uruchom
'systemctl restart mssql-launchpadd.service'.
Zawartość pliku /var/opt/mssql/mssql.conf
[rozszerzalność]
Stan
Jest to domyślnie zaprojektowane w taki sposób, aby procesy zewnętrzne nie mogły losowo uzyskiwać dostępu do żadnych katalogów systemowych.
Źródła informacji
Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.