共用方式為


大量載入安全性考慮 (SQLXML 4.0)

適用於:SQL ServerAzure SQL 資料庫

以下是使用 XML 大量載入的安全性指導方針:

  • 當您指定要以交易方式執行大量載入作業時,您可以使用 TempFilePath 屬性來指定用來建立暫存盤的資料夾。

    大量載入程式會建立具有下列許可權的這些暫存盤:

    • 讀取/寫入/刪除存取權會授與大量載入進程。

    • 讀取許可權會授與所有使用者,因為Microsoft SQL Server 存取這些檔案的帳戶未知。 您可以在包含這些暫存盤的資料夾上設定適當的許可權,以限制這些暫存盤的存取權。

  • XML 大量載入本身沒有任何許可權設定。 假設資料庫已正確設定,且用戶內容(也就是大量載入設定使用的登入)具有適當的許可權集。

  • 在非交易模式中,如果在大量載入程式期間發生錯誤,數據可能會處於部分載入狀態。 大量載入只會在發生這種情況時停止。 交易模式可用來緩解此問題。

  • 發生大量載入錯誤時,可能會包含資料庫的相關信息。 例如,它們可能包含數據表或數據行的名稱,或數據行類型資訊。 當您使用大量載入時,應該小心從大量載入進程攔截錯誤,並傳回一般錯誤訊息,而不是將錯誤直接公開給使用者。

  • 大量載入不會限制其運作的數據量。 大量載入不會檢查要載入的數據大小。 執行大量載入的使用者必須負責確保有足夠的記憶體來處理指定的檔案,而且資料庫中有足夠的空間來儲存正在載入的數據。

  • 大量載入不會嘗試使用它作為程式代碼提供的數據。 數據輸入絕不會以任何方式執行。 輸入數據中的任何程式代碼或命令都會被視為一般數據,而且不會執行。

  • 大量載入可能會根據 XML 和 SQL Server 數據模型之間的差異,對指定的數據進行格式化變更。 例如,指定時間的格式不同。 大量載入會嘗試解決這些差異。 因此,某些精確度資訊可能會遺失。

  • 大量載入不會限制處理資料所需的時間量。 處理會繼續,直到處理完成或發生錯誤為止。

  • 大量載入可以在資料庫內建立和刪除臨時表,而且需要許可權才能這麼做。 這些數據表的許可權會授與連線到資料庫以進行大量載入程式的相同使用者。

  • 大量載入可以建立和刪除交易模式處理期間使用的暫存盤,而且需要許可權才能這麼做。 這些檔案的建立許可權與大量載入執行所在的線程目前使用者相同。

  • 如果使用者將錯誤記錄檔設定為 SQLXML 將錯誤寫入,則每次執行大量載入時,檔案都會被上一個大量載入程式的數據覆寫。

另請參閱

執行 XML 資料的大量載入 (SQLXML 4.0)