Condividi tramite


Considerazioni sulla sicurezza per FOR XML (SQLXML 4.0)

La modalità FOR XML AUTO genera una gerarchia XML in cui i nomi di elemento vengono mappati ai nomi di tabella e i nomi di attributo vengono mappati ai nomi di colonna. In questo modo vengono esposte le informazioni sulle colonne e sulle tabelle di database. È possibile nascondere le informazioni del database quando si utilizza la modalità AUTO (formattazione sul lato server) specificando gli alias di colonne e di tabelle nella query. Questi alias vengono restituiti nel documento XML risultante come nomi di elemento e di attributo.

Nella query seguente ad esempio viene specificata la modalità AUTO; pertanto, la formattazione XML viene eseguita nel server:

SELECT P.FirstName AS F,P.LastName AS L 
FROM Person.Person AS P 
FOR XML AUTO

Nel documento XML risultante vengono utilizzati gli alias per i nomi di elemento e di attributo:

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

Quando si utilizza la modalità NESTED (formattazione sul lato client), gli alias vengono restituiti solo per gli attributi nel documento XML risultante. I nomi delle tabelle di base vengono restituiti sempre come nomi di elemento. Ad esempio, nella query seguente viene specificata la modalità NESTED.

SELECT P.FirstName as F,P.LastName as L 
FROM Person.Person AS P 
FOR XML AUTO

Nel documento XML risultante i nomi delle tabelle di base vengono restituiti come nomi di elemento e gli alias di tabella non vengono utilizzati:

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