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

适用于:SQL Server Azure SQL 数据库

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

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

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

  • 某些查询(如针对映射架构指定的查询(使用 最大深度 批注设置为更高的值指定)可能需要更长的时间才能执行。 可以选择通过设置 Command Time Out 属性(以秒为单位)来指定超时限制。 例如:

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

另请参阅

SQLXML 4.0 中的带批注的 XSD 架构