Microsoft SQL Server je populární systém pro správu relačních databází (RDBMS). Určení efektivních přístupových práv uživatelů je však obtížné, protože v prostředích Active Directory (AD) je efektivní přístup určován nejen na základě přímých oprávnění uživatele, ale také na základě jeho členství v rolích SQL Serveru, skupinách AD a místních skupinách Windows. (Skupiny AD a místní skupiny Windows jsou relevantní pouze v případě, že je povoleno ověřování systému Windows nebo smíšené ověřování a těmto skupinám je uděleno přihlášení k serveru SQL Server.)
Tento článek vysvětluje více o efektivním přístupu na SQL Server, nabízí základní doporučené postupy pro správu oprávnění a nabízí řešení, které může zmírnit riziko nejasných efektivních přístupových oprávnění prostřednictvím efektivního auditování a upozornění.
Jak se určuje efektivní přístup SQL
Základní koncepty
Efektivní přístup na SQL Server zahrnuje následující:
- Zabezpečitelné — Zabezpečitelné položky jsou objekty, kterým lze přiřadit oprávnění. Mohou to být instance SQL Serveru, databáze nebo specifické objekty v rámci databáze, jako jsou tabulky, pohledy nebo uložené procedury.
- Oprávnění – Oprávnění jsou akce, které lze provést se zabezpečeným prvkem. Například akce pro tabulku zahrnují CREATE, DROP, MODIFY, INSERT, UPDATE, DELETE, SELECT a TRUNCATE. Zmocnitelovi může být uděleno povolení k provedení akce se zabezpečeným prvkem. SQL Server nabízí více než 200 oprávnění, která lze udělit uživateli.
- Principál — Principálové jsou entity, kterým lze udělit nebo odepřít oprávnění pro přístup k prostředkům SQL Server. Příklady zahrnují přihlášení k serveru SQL, role serveru SQL, místní uživatelé Windows, místní skupiny Windows, uživatelé AD a skupiny AD.
- Autorizace — Autorizace je proces buď přidělení, zamítnutí nebo zrušení oprávnění k zabezpečenýmu prvku. Provádí se pomocí příkazů GRANT, REVOKE nebo DENY.
Vytváření příkazů SQL pro řízení přístupových práv
Klíčové pojmy jsou složeny do příkazů SQL pomocí následujícího vzoru:
AUTORIZACE OPRÁVNĚNÍ NA ZABEZPEČENÉ::JMÉNO ŘEDITELI;
Například k autorizaci (GRANT) oprávnění SELECT v tabulce „Zaměstnanci“, kterou lze zajistit hlavnímu jsmith, bychom použili následující příkaz:
GRANT SELECT ON [dbo].[Zaměstnanci] TO jsmith;
Dědičnost oprávnění
Na serveru SQL Server jsou zabezpečitelné položky uspořádány v přísné hierarchii: Server vlastní všechny instance, instance vlastní všechny databáze definované v rámci instance a všechny objekty definované v databázi jsou vlastněny touto databází.
Efektivní přístup závisí na této hierarchii, protože přístupová oprávnění k SQL Serveru lze dědit. Pokud je například uživateli (zmocněnci) udělena role (oprávnění) systémového správce na úrovni instance (zabezpečené), tento uživatel zdědí všechna oprávnění k zabezpečenému prvku od úrovně instance dolů – jejich skutečný přístup.
Aby se věci ještě více zkomplikovaly, oprávnění k objektům po proudu mohou být výslovně odepřena. V tomto případě DENY přepíše GRANT, takže účinné oprávnění bude DENY. Jednou významnou výjimkou z tohoto pravidla je role správce systému: Pokud je uživateli přidělena role správce systému, oprávnění se dále nekontrolují. Proto nebudou uplatněna žádná zamítnutí na navazujících objektech.
Oprávnění lze zdědit i jinak. Uživatelé databáze, kteří jsou známí jako přihlášení, mohou být definováni lokálně v rámci SQL Server – ale mohou to být také místní uživatelé Windows, místní skupiny Windows, uživatelé AD nebo skupiny AD. Když je skupině AD nebo místní skupině Windows udělen přístup k přihlášení, všichni uživatelé v této skupině zdědí související oprávnění. SQL Server se o členství ve skupině dozví, když se uživatel pokusí přihlásit.
Doporučené postupy pro správu oprávnění v SQL Server
Pečlivá správa oprávnění SQL Server může pomoci zabránit narušení dat a neoprávněnému přístupu k datům.
Následující doporučené postupy vám mohou pomoci udržovat zabezpečené prostředí SQL Server:
- Dodržujte zásadu nejmenšího privilegia. Ujistěte se, že uživatelé a aplikace mají pouze oprávnění nezbytná k provádění svých úkolů.
- Pravidelně kontrolujte oprávnění a role. Provádějte pravidelné audity uživatelských rolí a oprávnění, abyste zajistili, že zůstanou v souladu s bezpečnostními politikami a požadavky na shodu.
- Sledujte změny a aktivitu. Proaktivně sledujte problémy se zabezpečením pomocí nástrojů, jako jsou vestavěné funkce auditování serveru SQL Server ke sledování a protokolování aktivit přístupu a změn oprávnění.
- Použijte řízení přístupu založené na rolích (RBAC). Využijte role ke skupinovým oprávněním a přiřaďte je uživatelům na základě jejich pracovních funkcí. Tento přístup zjednodušuje správu a podporuje správce při zajišťování konzistentního uplatňování oprávnění napříč různými uživateli a odděleními. Role v SQL Server jsou podobné databázovým rolím na jiných platformách RDBMS. Existují tři typy:
- Pevné role serveru — SQL Server obsahuje pevné (předkonfigurované) role serveru, které nelze upravit ani odstranit. Jedinou výjimkou je veřejná pevná role serveru: Každému přihlášení na SQL Server je přidělena veřejná role; roli nelze odvolat, ale její výchozí oprávnění lze upravit (ačkoli se to nedoporučuje).
- Pevné databázové role — SQL Server také obsahuje pevné databázové role, které nelze upravit ani odstranit. Výjimkou je opět veřejná pevná databáze role, která je udělena všem přihlášením a nelze ji zrušit, ale lze ji přizpůsobit (což se nedoporučuje).
- Uživatelem definované role — Tyto role jsou zabezpečitelné na úrovni databáze. Oprávnění k objektům na úrovni databáze jsou udělena roli definované uživatelem. Uživatelsky definované role představují pohodlný způsob, jak seskupit více oprávnění k více zabezpečeným položkám, která jsou pak udělena přihlášením.
- Vyhněte se udělování dalších oprávnění veřejným rolím. Pokud tak učiníte, každé přihlášení zdědí tato oprávnění. Vždy zvažte, zda není vhodnější role definovaná uživatelem.
- Vyhněte se udělování oprávnění na úrovni databáze. Kdykoli je to možné, vyhněte se udělování oprávnění přímo uživatelům na úrovni databáze. Místo toho spravujte oprávnění prostřednictvím rolí a členství ve skupinách, které lze snadněji kontrolovat a auditovat. Tento přístup nejen zjednodušuje správu zabezpečení, ale také zvyšuje výkon databáze tím, že snižuje režii spojenou s udržováním mnoha individuálních uživatelských oprávnění.
- Používejte skripty. Chcete-li spravovat oprávnění efektivně a konzistentně, použijte rozhraní SQL Server Management Studio (SSMS) nebo použijte skripty T-SQL a dotazy PowerShellu. Zavedení reprodukovatelných metod pro provádění úkolů, jako je nastavení oprávnění v různých prostředích nebo obnovení oprávnění do známého stavu po změnách, sníží riziko chyb a zjednoduší správu.
- Zabezpečte činnost systémových administrátorů. Administrativní účty by měly být používány pouze pro akce, které absolutně vyžadují zvýšená oprávnění. Pokud správci systému používají samostatné účty pro jiné úkoly, snižuje se riziko náhodných změn, které by mohly otevřít dveře k narušení bezpečnosti.
- Používejte schémata. V SQL Server je schéma kolekce databázových objektů, které jsou logicky seskupeny. Schémata se používají k uspořádání a oddělení databázových objektů, jako jsou tabulky, pohledy, procedury a funkce, v rámci databáze. Tento přístup může výrazně zjednodušit správu zabezpečení a snížit složitost vaší architektury oprávnění.
Připojení Microsoft Access k serveru SQL pomocí ovladačů ODBC
Mnoho organizací se při používání Microsoft Access pro velké datové sady potýká s problémy s výkonem a omezeními zpracování dat. Tyto problémy mohou vést k pomalému zpracování dotazů a potížím s efektivní správou a zabezpečením dat. Připojením Microsoft Access k SQL Serveru pomocí ovladačů ODBC lze tyto problémy výrazně snížit a poskytnout efektivnější, škálovatelnější a bezpečnější řešení pro správu dat.
Zde je návod, jak bezpečně připojit Microsoft Access k SQL Server pomocí ovladačů ODBC:
- Stáhněte si nejnovější ovladač ODBC pro SQL Server z webu společnosti Microsoft a nainstalujte jej.
- Nakonfigurujte zdroj dat ODBC:
- Z ovládacího panelu otevřete nástroj Správce zdrojů dat ODBC.
- Přidejte nový zdroj dat kliknutím na Přidat a výběrem ovladače SQL Server ODBC ze seznamu.
- Zadejte požadované podrobnosti připojení, jako je název serveru a název databáze. Budete také muset zvolit metodu ověřování; pomocí ověřování systému Windows lze využít existující protokoly zabezpečení, zatímco ověřování serveru SQL Server může vyžadovat přísnější zásady hesel.
- Otestujte připojení, abyste se ujistili, že všechny konfigurace jsou správné a SQL Server je dostupný.
- Propojte tabulky v aplikaci Microsoft Access:
- Otevřete Microsoft Access a buď vytvořte novou databázi, nebo otevřete existující projekt, kde hodláte použít data SQL Server.
- Na kartě Externí data vyberte možnost propojení s externím zdrojem dat.
- Podle průvodce vyberte nově vytvořené připojení ODBC a vyberte tabulky ze serveru SQL, které chcete propojit s databází Accessu.
- Zavést bezpečnostní opatření. Připojování databází může odhalit citlivá data, proto zajistěte, aby byly zavedeny kontroly přístupu, které omezí, kdo může data zobrazit nebo s nimi manipulovat. Kromě toho sledujte datové toky mezi aplikací Microsoft Access a SQL Server, zda nedochází k podezřelé aktivitě.
Jak může Netwrix pomoci
Vzhledem k tomu, že SQL Server nespravuje ani nepřijímá automatické aktualizace o členství v místních Windows nebo AD skupinách, je obtížné spolehlivě vypočítat efektivní oprávnění k zabezpečeným prvkům. Netwrix Enterprise Auditor pro SQL tento proces zjednodušuje. Tento robustní nástroj pro auditování a vytváření sestav vypočítává účinná oprávnění pro všechny typy přihlášení a uživatele a rozděluje je podle jednotlivých uživatelů místního systému Windows nebo AD Group a rolí SQL Serveru u všech zabezpečených položek. Zefektivněním správy oprávnění můžete snadno zvýšit zabezpečení a zajistit shodu.
Netwrix Enterprise Auditor for Databases navíc automatizuje zjišťování a správu všech instancí SQL Serveru a citlivých dat. Poskytuje komplexní přehled o přístupových oprávněních, monitoruje aktivity pro podezřelé chování, provádí hodnocení rizik na základě oborových benchmarků, jako je CIS a další. Podrobné auditní záznamy a předem vytvořené zprávy o shodě vám pomohou zajistit, aby vaše databáze SQL zůstaly bezpečné, kompatibilní a dobře spravované. Více najdete na netwrix.com/enterprise-auditor.