Share via


FOR XML-Sicherheitsüberlegungen (SQLXML 4.0)

Der FOR XML AUTO-Modus erstellt eine XML-Hierarchie, in der Elementnamen Tabellennamen und Attributnamen Spaltennamen zugeordnet werden. Somit werden die Datenbanktabelle und die Spalteninformationen verfügbar gemacht. Sie können die Datenbankinformationen ausblenden, wenn Sie den AUTO-Modus (serverseitige Formatierung) verwenden, indem Sie Tabellen- und Spaltenaliasse in der Abfrage angeben. Diese Aliasse werden in dem resultierenden XML-Dokument als Element- und Attributsnamen zurückgegeben.

Die folgende Abfrage gibt beispielsweise den AUTO-Modus an, daher wird die XML-Formatierung auf dem Server durchgeführt:

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

Im resultierenden XML-Dokument werden die Aliasse für Element- und Attributsnamen verwendet:

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

Wenn Sie den NESTED-Modus (clientseitige Formatierung) verwenden, werden Aliasse nur für Attribute im resultierenden XML-Dokument zurückgegeben. Die Namen der Basistabellen werden immer als Elementnamen zurückgegeben. Die folgende Abfrage gibt beispielsweise den NESTED-Modus an.

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

Im resultierenden XML-Dokument werden die Namen der Basistabellen als Elementnamen zurückgegeben; Tabellenaliasse werden nicht verwendet:

  <?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>