Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
De volgende zijn beveiligingsrichtlijnen voor het gebruik van SQLXML voor gegevenstoegang.
De SQLXMLOLEDB-provider biedt een StreamFlags-eigenschap die je in staat stelt vlaggen in te stellen die aangeven welke SQLXML-functionaliteit voor elke specifieke instantie ingeschakeld of uitgeschakeld moet worden. Je kunt deze eigenschap gebruiken om je gebruik van SQLXML aan te passen en ervoor te zorgen dat alleen de componenten die je wilt ingeschakeld zijn. Voor meer informatie, zie SQLXMLOLEDB Provider (SQLXML 4.0).
Wanneer SQLXML-fouten optreden en worden teruggegeven, kunnen ze informatie bevatten over het databaseschema zoals tabelnamen, kolomnamen of type-informatie. Je moet voorzichtig zijn bij het omgaan met deze fouten, zodat informatie over je SQL Server-installatie niet gemakkelijk te vinden is voor gebruikers waar het niet bedoeld of nodig is.
Wanneer SQLXML wordt gebruikt om SQL Server te vragen of updates te sturen, stelt het geen limiet aan de hoeveelheid data die kan worden uitgewisseld en controleert het de grootte van de data in een SQLXML-payload niet voordat deze wordt verwerkt. Wanneer je je applicatie ontwikkelt met SQLXML, is het jouw verantwoordelijkheid om ervoor te zorgen dat er voldoende geheugen op het systeem is om de data te verwerken. Bijvoorbeeld, bij het opvragen van data van de server moet je controleren of er voldoende ruimte in het geheugen op de client is om deze te ontvangen. Evenzo, als je data naar de server laadt, moet je controleren of er genoeg beschikbare geheugen op de server is om het te verwerken en voldoende beschikbare schijfopslagruimte om de data op te slaan.
SQLXML genereert dynamisch Transact-SQL queries en update-commando's en stuurt deze naar SQL Server voor uitvoering. Dit is de enige manier waarop SQLXML de server zoekt en bijwerkt. Resultaten worden ontvangen als een stroom (van XML) of als een rijset.
Bij het ontvangen van zoekresultaten voert SQLXML geen acties uit op basis van de inhoud van de ontvangen gegevens. Er wordt geen extra verwerking gedaan op basis van het type of de inhoud van de gegevens. De data wordt nooit behandeld als code waarmee acties worden uitgevoerd.
Bij het uitvoeren van XML-sjablonen vertaalt SQLXML de XPath- en DBObject-queries die zich in de ingediende template bevinden in Transact-SQL commando's die vervolgens worden uitgevoerd tegen SQL Server. Deze commando's hebben alleen invloed op bestaande data. Commando's die door SQLXML worden gegenereerd, zullen de structuur van de database nooit veranderen. Gebruikers moeten expliciete opdrachten geven om de databasestructuur aan te passen. Bijvoorbeeld door ze op te nemen in een sql:query-blok van een sjabloon.
Bij het uitvoeren van DBObject-queries en XPath-statements over mappingbestanden, zal SQLXML de data in de database op geen enkele manier veranderen.
SQLXML kan formatteringswijzigingen aanbrengen aan de gegeven data op basis van verschillen tussen de XML- en SQL Server-datamodellen. Bijvoorbeeld, het format voor het specificeren van een tijd is anders. SQLXML zal proberen deze verschillen op te lossen. Hierdoor kan er wat precisie-informatie verloren gaan.
SQLXML stelt geen limiet aan de tijd die nodig is om de data te verwerken. De verwerking gaat door totdat er een fout optreedt of de verwerking is voltooid.
SQLXML schrijft niet naar het bestandssysteem. Als gebruikers de gegevens die ze uit de database halen willen opslaan, moeten ze dit in hun code doen.
SQLXML stelt gebruikers in staat om elke gewenste SQL-query uit te voeren op de database. Deze functionaliteit mag nooit worden blootgesteld aan een onveilige of ongecontroleerde bron, omdat dit in feite de SQL-database openstelt zonder toegang tot gebruikers.
Bij het uitvoeren van Updategrams vertaalt SQLXML de updg:sync-blokken naar DELETE-, UPDATE- en INSET-commando's tegen de SQL Server-instantie. Deze commando's hebben alleen invloed op bestaande data. Commando's die door SQLXML worden gegenereerd, zullen de database nooit veranderen. Gebruikers moeten expliciete opdrachten geven om de databasestructuur aan te passen. Bijvoorbeeld door ze op te nemen in een sql:query-blok van een sjabloon.
Bij het uitvoeren van DiffGrams vertaalt SQLXML de DiffGram naar DELETE-, UPDATE- en INSERT-commando's tegen de SQL Server-instantie. Deze commando's hebben alleen invloed op bestaande data. Commando's die door SQLXML worden gegenereerd, zullen de database nooit veranderen. Gebruikers moeten expliciete opdrachten geven om de databasestructuur aan te passen. Bijvoorbeeld door ze op te nemen in een sql:query-blok van een sjabloon.