Поделиться через


Вопросы безопасности массовой загрузки (SQLXML 4.0)

Ниже приведены рекомендации по обеспечению безопасности для использования массовой загрузки XML.

  • Если указать, что операция массового загрузки должна выполняться как транзакция, свойство TempFilePath используется для указания папки, в которой создаются временные файлы.

    Процесс массовой загрузки создает эти временные файлы со следующими разрешениями:

    • Доступ на чтение и запись и удаление предоставляется процессу массовой загрузки.

    • Разрешение на чтение предоставляется всем пользователям, так как учетная запись, в которой Microsoft SQL Server получит доступ к этим файлам, неизвестна. Вы можете ограничить доступ к этим временным файлам, задав соответствующие разрешения в папке, содержащей их.

  • Массовая загрузка XML не имеет параметров разрешений. Предполагается, что база данных настроена правильно и что контекст пользователя (то есть имя входа, используемое массовой загрузкой) имеет соответствующие разрешения.

  • В режиме, отличном от транзакций, при возникновении ошибки во время процесса массовой загрузки данные могут оставаться в частично загруженном состоянии. Массовая загрузка просто остановится в точке, когда это происходит. Для устранения этой проблемы можно использовать режим транзакций.

  • При возникновении ошибок массовой загрузки они могут включать сведения о базе данных. Например, они могут включать имя таблицы или столбца или сведения о типе столбца. При использовании массовой загрузки необходимо позаботиться о том, чтобы перехватывать ошибки из процесса массовой загрузки и возвращать универсальное сообщение об ошибке, а не предоставлять ошибки непосредственно пользователям.

  • Массовая загрузка не ограничивает объем данных, которые он работает. Массовая загрузка не проверяет размер загруженных данных. Это ответственность пользователя, выполняющего массовую загрузку, чтобы обеспечить достаточно памяти для обработки указанного файла, и что в базе данных достаточно места для хранения загруженных данных.

  • Массовая загрузка не пытается использовать данные, которые он получает в качестве кода. Входные данные никогда не выполняются в любом случае. Любой код или команды входных данных обрабатываются как обычные данные и не будут выполняться.

  • Массовая загрузка может вносить изменения в форматирование данных на основе различий между моделями данных XML и SQL Server. Например, формат указания времени отличается. Массовая загрузка попытается устранить эти различия. В результате некоторые данные точности могут быть потеряны.

  • Массовая загрузка не ограничивает время обработки данных. Обработка будет продолжаться до завершения обработки или возникновения ошибки.

  • Массовая загрузка может создавать и удалять временные таблицы в базе данных, а для этого требуются разрешения. Разрешения для этих таблиц будут предоставлены тому же пользователю, который подключается к базе данных для процесса массовой загрузки.

  • Массовая загрузка может создавать и удалять временные файлы, используемые во время обработки транзакционного режима, и требуются разрешения для этого. Эти файлы создаются с теми же разрешениями, что и текущий пользователь потока, в котором выполняется массовая загрузка.

  • Если пользователь задает файл журнала ошибок SQLXML для записи ошибок, то при каждом выполнении массовой загрузки файл будет перезаписан с данными из последнего процесса массовой загрузки.

См. также

Массовая загрузка XML-данных (SQLXML 4.0)