次の方法で共有


FOR XML のセキュリティに関する考慮事項 (SQLXML 4.0)

FOR XML AUTO モードでは、要素名がテーブル名にマップされ、属性名が列名にマップされる XML 階層が生成されます。 これにより、データベース テーブルと列の情報が公開されます。 クエリでテーブルと列のエイリアスを指定することで、AUTO モード (サーバー側の書式設定) を使用する場合は、データベース情報を非表示にすることができます。 これらのエイリアスは、結果の XML ドキュメントで要素名と属性名として返されます。

たとえば、次のクエリは AUTO モードを指定します。そのため、XML の書式設定はサーバー上で行われます。

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

結果の XML ドキュメントでは、要素名と属性名にエイリアスが使用されます。

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

NESTED モード (クライアント側の書式設定) を使用すると、結果の XML ドキュメント内の属性に対してのみエイリアスが返されます。 基本テーブルの名前は、常に要素名として返されます。 たとえば、次のクエリは NESTED モードを指定します。

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

結果の XML ドキュメントでは、基本テーブルの名前は要素名として返され、テーブルのエイリアスは使用されません。

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