Vlastní sestavy v aplikaci SQL Server Management Studio

Platí pro: SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL analytics endpoint v Microsoft FabricSklad ve službě Microsoft FabricSQL databáze v Microsoft Fabric

V SQL Server Management Studio zobrazuje mnoho uzlů Průzkumníka objektů sadu standardních sestav vytvořených Microsoftu. Tyto sestavy shrnují obvykle požadované informace o serveru. Správci můžou spouštět vlastní sestavy vytvořené v nástrojích SQL Server Data Tools (SSDT) ze sady Management Studio.

Implementace

Vlastní sestavy se ukládají jako soubory definice sestavy (.rdl) a vytvářejí se pomocí jazyka RDL (Report Definition Language). RDL obsahuje informace o získávání a rozložení dat pro sestavu ve formátu XML. RDL je otevřené schéma. Vývojáři můžou rozšířit RDL o další atributy a prvky. Sestavy můžou v sestavě spouštět libovolný platný příkaz Transact-SQL.

Pokud je Průzkumník objektů připojený k serveru, mohou se vlastní sestavy spouštět v kontextu aktuálního výběru Průzkumníka objektů, pokud sestavy odkazují na parametry sestavy daného uzlu. To umožňuje sestavě používat aktuální kontext, například aktuální databázi; nebo konzistentní kontext, například určení určené databáze jako součást příkazu Transact-SQL, který je obsažen ve vlastní sestavě.

Spuštění vlastní sestavy

Vlastní sestavu můžete spustit v Management Studiu následujícími způsoby:

  • Klikněte pravým tlačítkem myši na uzel v Průzkumníku objektů a přejděte na Sestavy>vlastních sestav. V dialogovém okně Otevřít soubor najděte složku, která obsahuje .rdl soubory, a poté otevřete příslušný soubor sestavy.

  • Klikněte pravým tlačítkem myši na uzel v Průzkumníku objektů, přejděte na Sestavy>Vlastní sestavy a vyberte vlastní sestavu ze seznamu naposledy použitých souborů.

Omezení

Při práci s vlastními sestavami zvažte následující omezení:

  • Aby se zabránilo nezamýšlenému spuštění škodlivého kódu, nelze Management Studio nakonfigurovat tak, aby automaticky spouštělo sestavu, i když je systém souborů nakonfigurován tak, aby přidružoval .rdl soubory k Management Studio. Sestavy nelze programaticky spustit v nástroji Management Studio a nelze je spustit z příkazového řádku prostřednictvím Management Studio.

  • Vlastní sestavy můžete spouštět v kontextu, který negeneruje očekávané hodnoty. Můžete například spustit sestavu o replikaci v kontextu databáze, která není součástí replikace, nebo spustit sestavu jako uživatel, který nemá oprávnění k přístupu k informacím potřebným k vygenerování přesné sestavy. Tvůrce sestavy zodpovídá za platnost struktury sestavy a jejího kontextu.

  • Do seznamu standardních sestav nemůžete přidat vlastní sestavu.

  • Kód, který je zpracován zprávou, může ovlivnit výkon serveru.

  • Vlastní sestavy nepodporují podsestavy.

  • Text příkazu každého dotazu v sestavě nesmí být určen pomocí výrazu.

  • Jakýkoli parametr dotazu, který se používá v příkazu (dotazu), může odkazovat pouze na jeden parametr sestavy a nemůže používat žádné operátory výrazů.

  • Pro příkazy sestavy (dotazy) jsou podporovány pouze typy příkazů Text a Uložená procedura.

  • Architektura sestav neposkytuje pro dotazy žádné parametry. Autoři dotazů musí zajistit, aby jejich dotazy byly bez útoků prostřednictvím injektáže SQL.

Správa vlastních sestav

Doporučujeme uživatelům, kteří mají mnoho vlastních sestav, aby je uspořádali pomocí složek systému souborů s příslušnými oprávněními systému souborů NTFS.

Dovolení

Vlastní sestavy se spouštějí pomocí oprávnění aktuálního uživatele. Aby uživatel se zlými úmysly nemohl měnit dotazy spuštěné sestavou, musí být oprávnění ke složce systému souborů, která obsahuje soubory sestavy, nastavena tak, aby omezovala přístup.

Uživatel i účet používaný službou SQL Server vyžadují přístup pro čtení ke složce systému souborů, která obsahuje soubory sestav.

Do sestavy lze vložit libovolný platný příkaz rozhraní .NET Framework, ale příkaz se nespustí.

Opatrnost

Jakýkoli platný příkaz Transact-SQL lze vložit a spustit v reportu. Spuštění sestavy v rámci vysoce privilegovaného uživatelského účtu umožňuje, aby se kterékoliv z těchto vložených instrukcí mohly spustit bez výzvy.