Compartilhar via


Considerações de segurança FOR XML (SQLXML 4.0)

O modo FOR XML AUTO gera uma hierarquia XML na qual os nomes de elemento são mapeados para nomes de tabela e nomes de atributo mapeiam para nomes de coluna. Isso expõe as informações da tabela e da coluna do banco de dados. Você pode ocultar as informações do banco de dados ao usar o modo AUTO (formatação do lado do servidor) especificando aliases de tabela e coluna na consulta. Esses aliases são retornados no documento XML resultante como nomes de elemento e atributo.

Por exemplo, a consulta a seguir especifica o modo AUTO; portanto, a formatação XML é feita no servidor:

SELECT C.FirstName as F,C.LastName as L   
FROM Person.Contact C   
FOR XML AUTO  

No documento XML resultante, os aliases são usados para nomes de elemento e atributo:

<?xml version="1.0" encoding="utf-8" ?>   
<root>  
  <C F="Nancy" L="Fuller" />   
  <CE F="Andrew" L="Peacock" />   
  <C F="Janet" L="Leverling" />   
  ...  
</root>  

Quando você usa o modo ANINHADO (formatação do lado do cliente), os aliases são retornados apenas para atributos no documento XML resultante. Os nomes das tabelas base são sempre retornados como nomes de elemento. Por exemplo, a consulta a seguir especifica o modo ANINHADO.

SELECT C.FirstName as F,C.LastName as L   
FROM Person.Contact C   
FOR XML AUTO  

No documento XML resultante, os nomes das tabelas base são retornados como nomes de elementos e os aliases de tabela não são usados:

<?xml version="1.0" encoding="utf-8" ?>   
<root>  
  <Person.Contact F="Nancy" L="Fuller" />   
  <Person.Contact F="Andrew" L="Peacock" />   
  <Person.Contact F="Janet" L="Leverling" />   
       ...  
</root>