Tato otázka poukazuje na to, že u různých DMV (zobrazení dynamické správy) je vyžadováno oprávnění „Zobrazit stav serveru“, ale nemohu najít nic o tom, kdo vás dělat a nechtějí udělit oprávnění.
Teď samozřejmě chápu „nejmenší oprávnění“ a proč byste je nechtěli nikomu udělit, ale nemohu najít žádné vodítko, jak vyhodnotit, zda by MĚLO být uděleno nebo ne .
Takže moje otázka: Jaké jsou bezpečnostní a výkonové důsledky udělení oprávnění „Zobrazit stav serveru“ uživateli. Co mohou dělat, že by jim to nemělo být dovoleno …
Aktualizovat : jedním z důsledků je, že uživatel bude moci používat DMV k prohlížení dotazů. Pokud dotazy nebo parametry dotazu mohou obsahovat důvěrné informace, které by uživatel jinak neviděl, povolení VIEW SERVER STATE by jim to umožnilo (tj. Dob = nebo ssn =).
Odpověď
Udělení tohoto oprávnění mi nenapadá žádné významné problémy s výkonem. Z bezpečnostního hlediska riskujete, že uživateli umožníte vidět, co máte většina podrobností o vašich slabých stránkách, například uživatel se zlými úmysly si může prohlédnout vaše nejčastější statistiky čekání, což jim může pomoci zacílit útok DoS na váš server.
Je to možné? Rozhodně. Pravděpodobně? Jsem nucen říct Ne, ale pamatujte, že se odhaduje, že 90 procent útoků proti společnostem pochází od interních útočníků.
Odpovědět
Jako správce byste tyto informace považovali za informace ve vaší doméně (výkon / využití indexu / atd.), ale existují potenciálně přesvědčivé důvody, operační organizace by chtěla tyto informace pro velký starší systém, který podporují – identifikace zombie tabulek, kterých se dotýkají pouze procesy údržby.
Nakonec to vždy skončí jako otázka „štěstí a velkorysosti“ protože výzva, zda je konkrétní požadavek oprávněný, končí jako měkká volba a ne jako ostrý vzorec. Použití vzorů osvědčených postupů bez pohledu na kontext je samo o sobě docela ošklivým anti-vzorem a realitou je, že mnozí přistupují ke svým pozicím jako výchozí bod „mluv do ruky“.
Odpověď
Pokud jde o dopad na výkon, nevím o žádném z těchto ani jiných povolení.
Pokud jde o:
Co mohou dělat, že by jim to nemělo být dovoleno
Jednoduše řečeno, mohou vidět věci že by možná neměli vidět. A nemysli na to jen z hlediska serveru SQL Server. Toto konkrétní oprávnění také upravuje DMV, jako je sys.dm_os_sys_info a několik dalších, které poskytují přehled o hostitelský počítač (hardware, služby atd.). Vždy nevíte, jaké informace lze proti vám použít. A i když jste v pořádku, když někdo vidí vše, co toto povolení nyní umožňuje, někdy se do balíčků Service Pack / kumulativních aktualizací přidají soubory DMV, a tak se možná objeví nová informace, které si nejste vědomi.
Nemohu najít žádné pokyny, jak vyhodnotit, zda by MĚLO BÝT poskytnuto nebo ne.
Vzhledem k tomu, že jste již zmínili, že dáváte lidem minimální potřebná oprávnění, k čemu to skutečně přijde je: potřebuje někdo toto oprávnění pro ad hoc použití? Znamená to, potřebuje někdo flexibilitu při vymýšlení vlastních dotazů? Fungovalo by vytvoření jedné nebo více uložených procedur a / nebo TVF s více prohlášeními? Pokud je to tak, nemusíte udělovat oprávnění žádnému uživateli (který má potom povolení k čemukoli, co toto povolení umožňuje), a místo toho udělujete oprávnění kódu (což dělá pouze to, k čemu je kódováno). Podepisování modulů je toho, jak toho dosáhnout. Obecná koncepce je:
- Vytvořte uložené procedury a / nebo TVF s více příkazy k provedení požadovaných akcí.
- Udělte
EXECUTE
na tyto moduly všem uživatelům a / nebo rolím, které musí tyto akce provádět - Vytvořit certifikát
- Podepsat moduly pomocí tohoto certifikátu (pomocí
ADD SIGNATURE
) - Zkopírujte certifikát do
[master]
databáze (tj. vytvořte certifikát v[master]
pomocí veřejného klíče certifikátu použitého k podepsání modulu (modulů). - Vytvořit přihlašovací jméno z certifikátu zkopírovaného do
[master]
- Udělit jakoukoli instanci- úroveň povolení ns jsou nezbytné pro toto přihlášení založené na certifikátu (což může zahrnovat jeho přidání do rolí na úrovni instance).
Několik příkladů naleznete zde:
Odpověď
Je to bezpečnostní problém. Nikdy se nemůžete pokazit, pokud řídíte se Principem nejméně privilegovaných . Jinými slovy, pokud ověřující instanční osoba nepotřebuje konkrétní oprávnění, pak ne “ Poskytujete jim informace. Poskytujete informace o typu zámků na vašich dveřích dalším lidem, kteří o vašem domě to nemusí vědět? Doufám, že ne. Pravděpodobně by nic neudělali, ale stále to není obezřetné.
Pokud bychom založili datové principy na štěstí a velkorysosti, měli bychom být ve větších problémech o dost častěji. Bezpečnost je aspekt, kde byste měli udělit, pouze pokud můžete bránit, proč jste udělili. Jednoduše někomu poskytnete více informací, než kolik potřebuje vědět . Nedělejte to. Stav serveru je stále citlivý.
Komentáře
t, ale já chci.
sys.dm_db_missing_index_details
) a chce vědět, jaká jsou rizika, když tak učiníte.