it-swarm-eu.dev

Existují rizika pro udělení oprávnění SQL Server SHOWPLAN uživatelům?

Dělám nějaké vyladění výkonu na velké databázi serveru SQL Server 2008 a skupina IT není ochotna udělit oprávnění SHOWPLAN. V minulosti byl „Zobrazit prováděcí plán“ nejúčinnějším způsobem, jak porozumět výkonu jednotlivých dotazů a postupů.

Jaká rizika jsou spojena s udělením tohoto povolení? Existuje legitimní zdůvodnění tohoto omezení vývojové kopie databáze?

Poznámka: Tato skupina IT IT obsahuje více než 200 databází v rámci jedné instance serveru SQL. Dík.

Odpověď: Beru nedostatečnou reakci, což znamená, že neexistují žádná významná bezpečnostní rizika, kromě těch, která jsou uvedena níže. Omezení tohoto omezení na vývojovou databázi je v zásadě kontraproduktivní.

Budu to aktualizovat, pokud někdo přijde s lepší odpovědí. Děkuji za vaše komentáře!

23
RaoulRubin

Podívejte se na Showplan Security v Books Online, který říká:

Uživatelé, kteří mají SHOWPLAN, ALTER TRACE nebo VIEW SERVER STATE oprávnění zobrazuje dotazy, které jsou zachyceny ve výstupu Showplan. Tyto dotazy mohou obsahovat citlivé informace, například hesla. Doporučujeme proto udělit tato oprávnění pouze uživatelům, kteří jsou oprávněni prohlížet citlivé informace, například členům pevné role databáze db_owner nebo členům pevné role serveru sysadmin . Doporučujeme také ukládat pouze soubory Showplan nebo trasovací soubory, které obsahují události související s programem Showplan, do umístění používajícího systém souborů NTFS a omezit přístup uživatelům, kteří jsou oprávněni prohlížet citlivé informace.

Zvažte například následující dotaz:

SELECT COUNT(*)  FROM table_1  WHERE column_1 < 10 

Pokud uživatel se zlými úmysly vytvoří výstup Showplan pro sadu dotazů, jako je tento příklad, a pokaždé nahradí hodnotu „10“ v predikátu různými konstantami, může uživatel odvodit přibližné rozdělení dat hodnot sloupců pro sloupec_1 v table_1 čtením odhadovaného počtu řádků.

Toto riziko se jeví jako zanedbatelné, zejména vzhledem k tomu, že se jedná o vývojový server, kde by všechny dotazy byly od devs a IT lidé, nikoli uživatelé.

19
user5094