带批注的架构的安全注意事项 (SQLXML 4.0)

以下是在使用带批注的架构时应遵循的安全准则:

  • 避免在映射架构中使用默认映射。默认映射会在生成的 XML 文档中公开数据库信息(表和列名),因为在默认情况下元素名映射为表名而属性名则映射为列名。因此,能够查看该 XML 文档的任何用户都可以获得数据库中表和列的相关信息,从而带来潜在的安全风险。若要避免此风险,请在架构中指定随意的元素名和属性名并使用批注将它们显式映射到表和列。有关在创建 XSD 架构时使用默认映射的详细信息,请参阅 XSD 元素和属性到表和列的默认映射 (SQLXML 4.0)

  • 使用批注指定的显式映射公开数据库信息(如表名和列名)。因此,最好不要让这些架构能够公开使用。

  • 某些查询的执行时间可能较长,例如针对具有递归的映射架构指定的查询(使用设置为较高值的 max-depth 批注进行指定)。还可以指定超时限制,方法是设置 Command Time Out 属性(以秒为单位)。例如:

    cn.Open "Provider=SQLOLEDB;Server=localhost;Database=tempdb;Integrated Security=SSPI;Command Properties='Command Time Out=50';"