Бөлісу құралы:


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

Область применения: SQL Server База данных SQL Azure

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

Выполнение массовой загрузки XML-данных (SQLXML 4.0)