設定 Linux 上 SQL Server 的使用狀況與診斷資料收集

適用於:SQL Server - Linux

根據預設,Microsoft SQL Server 會收集客戶如何使用應用程式的相關資訊。 具體來說,SQL Server 會收集有關安裝體驗、使用情況和效能的相關資訊。 這些資訊可協助 Microsoft 改善產品,以進一步滿足客戶需求。 例如,Microsoft 會收集客戶所遇到之錯誤代碼的相關資訊,以便修正相關錯誤、改善如何使用 SQL Server 的相關文件,以及判斷是否應將功能加入到產品中以滿足客戶。

本文件提供關於所收集的資訊種類、如何設定 Linux 上的 Microsoft SQL Server,以將所收集資訊傳送給 Microsoft 的詳細資料。 SQL Server 2017 包含隱私權聲明,其中說明我們會 (與不會) 向使用者收集的資訊。 如需詳細資訊,請參閱隱私權聲明

具體來說,Microsoft 不會透過此機制傳送下列類型的資訊:

  • 使用者資料表內的任何值
  • 任何登入認證或其他驗證資訊
  • 個人識別資訊 (PII)

SQL Server 2017 一律會收集並傳送與安裝程序中安裝體驗相關的資訊,以便我們能夠快速找出並修正客戶所遇到的任何安裝問題。 SQL Server 2017 可以透過 mssql-conf 設定為不傳送資訊 (針對每個伺服器執行個體) 給 Microsoft。 mssql-conf 是一個設定指令碼,會使用適用於 Red Hat Enterprise Linux、SUSE Linux Enterprise Server 和 Ubuntu 的 SQL Server 2017 進行安裝。

注意

您僅可在付費版本的 SQL Server 中停用將資訊傳送給 Microsoft 的功能。

停用使用方式和診斷資料收集

此選項可讓您變更 SQL Server 是否要將使用方式和診斷資料收集傳送給 Microsoft。 根據預設,此值設為 True。 若要變更此值,請執行下列命令:

重要

您不能針對免費的 SQL Server 版本 (Express 和 Developer) 關閉使用方式和診斷資料收集。

在 Red Hat、SUSE 和 Ubuntu 上

  1. 使用 telemetry.customerfeedbackset 命令,以 root 身分執行 mssql-conf 指令碼。 下列範例會藉由指定 False 來關閉使用方式和診斷資料收集。

    sudo /opt/mssql/bin/mssql-conf set telemetry.customerfeedback false
    
  2. 重新啟動 SQL Server 服務:

    sudo systemctl restart mssql-server
    

在 Docker 上

若要停用 Docker 上的使用方式和診斷資料收集,您必須讓 Docker 保存您的資料

  1. 在主機目錄中新增具有 [telemetry]customerfeedback = false 這二行的 mssql.conf 檔案:

    echo '[telemetry]' >> <host directory>/mssql.conf
    
    echo 'customerfeedback = false' >> <host directory>/mssql.conf
    
  2. 執行容器映像:

    重要

    SA_PASSWORD 環境變數已被取代。 請改用 MSSQL_SA_PASSWORD

    docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
    
    docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>" -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
    
  1. 在主機目錄中新增具有 [telemetry]customerfeedback = false 這二行的 mssql.conf 檔案:

    echo '[telemetry]' >> <host directory>/mssql.conf
    
    echo 'customerfeedback = false' >> <host directory>/mssql.conf
    
  2. 執行容器映像:

    重要

    SA_PASSWORD 環境變數已被取代。 請改用 MSSQL_SA_PASSWORD

    docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latest
    
    docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>" -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latest
    
  1. 在主機目錄中新增具有 [telemetry]customerfeedback = false 這二行的 mssql.conf 檔案:

    echo '[telemetry]' >> <host directory>/mssql.conf
    
    echo 'customerfeedback = false' >> <host directory>/mssql.conf
    
  2. 執行容器映像:

    重要

    SA_PASSWORD 環境變數已被取代。 請改用 MSSQL_SA_PASSWORD

    docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2022-latest
    
    docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>" -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2022-latest
    

Linux 上 SQL Server 使用方式和診斷資料收集的本機稽核

Microsoft SQL Server 2017 包含一些啟用網際網路的功能,而這些功能可能會收集您電腦或裝置的相關資訊 (「標準電腦資訊」) 並將此資訊傳送至 Microsoft。 SQL Server 使用方式和診斷資料收集的本機稽核元件,會將服務收集的資料寫入指定資料夾,代表將傳送給 Microsoft 的資料 (記錄)。 本機稽核的目的是要讓客戶看到 Microsoft 以此功能收集的所有資料,以用於相容性、法規或隱私權驗證的理由。

在 Linux 上的 SQL Server 中,本機稽核可以在 SQL Server Database Engine 和 Analysis Services (SSAS) 的執行個體層級設定。 其他 SQL Server 元件和 SQL Server 工具沒有使用方式和診斷資料收集的本機稽核功能。

啟用本機稽核

此選項可啟用本機稽核,並可讓您設定要建立本機稽核記錄的目錄。

  1. 為新的本機稽核記錄建立目標目錄。 下列範例會建立新的 /tmp/audit 目錄:

    sudo mkdir /tmp/audit
    
  2. 將目錄的擁有者和群組變更為 mssql 使用者:

    sudo chown mssql /tmp/audit
    sudo chgrp mssql /tmp/audit
    
  3. 使用 telemetry.userrequestedlocalauditdirectoryset 命令,以 root 身分執行 mssql-conf 指令碼:

    sudo /opt/mssql/bin/mssql-conf set telemetry.userrequestedlocalauditdirectory /tmp/audit
    
  4. 重新啟動 SQL Server 服務:

    sudo systemctl restart mssql-server
    

在 Docker 上

若要在 Docker 上啟用本機稽核,您必須讓 Docker 保存您的資料

  1. 新本機稽核記錄的目標目錄會位於容器中。 在您電腦上的主機目錄中,為新的本機稽核記錄建立目標目錄。 下列範例會建立新的 /audit 目錄:

    sudo mkdir <host directory>/audit
    
  2. 在主機目錄中新增具有 [telemetry]userrequestedlocalauditdirectory = <host directory>/audit 這二行的 mssql.conf 檔案:

    echo '[telemetry]' >> <host directory>/mssql.conf
    
    echo 'userrequestedlocalauditdirectory = <host directory>/audit' >> <host directory>/mssql.conf
    
  3. 執行容器映像:

    docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
    
    docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>" -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
    
  1. 新本機稽核記錄的目標目錄會位於容器中。 在您電腦上的主機目錄中,為新的本機稽核記錄建立目標目錄。 下列範例會建立新的 /audit 目錄:

    sudo mkdir <host directory>/audit
    
  2. 在主機目錄中新增具有 [telemetry]userrequestedlocalauditdirectory = <host directory>/audit 這二行的 mssql.conf 檔案:

    echo '[telemetry]' >> <host directory>/mssql.conf
    
    echo 'userrequestedlocalauditdirectory = <host directory>/audit' >> <host directory>/mssql.conf
    
  3. 執行容器映像

    docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latest
    
    docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>" -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latest
    
  1. 新本機稽核記錄的目標目錄會位於容器中。 在您電腦上的主機目錄中,為新的本機稽核記錄建立目標目錄。 下列範例會建立新的 /audit 目錄:

    sudo mkdir <host directory>/audit
    
  2. 在主機目錄中新增具有 [telemetry]userrequestedlocalauditdirectory = <host directory>/audit 這二行的 mssql.conf 檔案:

    echo '[telemetry]' >> <host directory>/mssql.conf
    
    echo 'userrequestedlocalauditdirectory = <host directory>/audit' >> <host directory>/mssql.conf
    
  3. 執行容器映像

    docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2022-latest
    
    docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>" -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2022-latest