以下是使用 XML 大容量加载的安全准则:
当指定要作为事务执行大容量加载作时,可以使用
TempFilePath该属性指定要在其中创建临时文件的文件夹。大容量加载过程使用以下权限创建这些临时文件:
读取/写入/删除访问权限授予大容量加载进程。
读取权限授予所有用户,因为Microsoft SQL Server 将访问这些文件的帐户未知。 可以通过对包含这些临时文件的文件夹设置适当的权限来限制对这些临时文件的访问权限。
XML 大容量加载本身没有任何权限设置。 假定数据库已正确设置,并且用户上下文(即大容量加载设置使用的登录名)具有适当的权限集。
在非事务模式下,如果在大容量加载过程中发生错误,则数据可能处于部分加载状态。 大容量加载只会在发生这种情况时停止。 事务模式可用于缓解此问题。
发生大容量加载错误时,它们可能包含有关数据库的信息。 例如,它们可能包括表或列的名称或列类型信息。 使用大容量加载时,应注意从大容量加载进程捕获错误并返回一般错误消息,而不是直接向用户公开错误。
大容量加载不会对它所处理的数据量设置任何限制。 大容量加载不会检查要加载的数据的大小。 执行大容量加载的用户有责任确保有足够的内存来处理指定的文件,并且数据库中有足够的空间来存储正在加载的数据。
大容量加载不会尝试使用它作为代码提供的数据。 数据输入永远不会以任何方式执行。 输入数据中的任何代码或命令都被视为正常数据,不会执行。
大容量加载可能会根据 XML 和 SQL Server 数据模型之间的差异对给定数据进行格式更改。 例如,指定时间的格式不同。 大容量加载将尝试解决这些差异。 因此,某些精度信息可能会丢失。
大容量加载不会限制处理数据所需的时间。 处理将继续,直到处理完成或发生错误。
大容量加载可以在数据库中创建和删除临时表,并且需要权限才能执行此作。 将向连接到数据库进行大容量加载进程的同一用户授予对这些表的权限。
大容量加载可以创建和删除在事务模式处理期间使用的临时文件,并需要执行此作的权限。 这些文件使用与运行大容量加载的线程的当前用户相同的权限创建。
如果用户为 SQLXML 设置一个错误日志文件以写入错误,则每次执行大容量加载时,都会用上一次大容量加载过程中的数据覆盖该文件。