it-swarm-eu.dev

Jak přiřadíte celý přístup k zabezpečení skupiny Active Directory v serveru SQL Server 2008?

Chtěl bych použít integrované zabezpečení se svou interní aplikací, která je vše v doméně. Bohužel jsem nikdy nebyl schopen zajistit, aby to fungovalo dobře. Chtěl bych přiřadit celé skupině Exchange (Active Directory) roli na serveru SQL pro přístup ke čtení a zápisu do určitých tabulek. Tímto způsobem bych nemusel vytvořit operátora, kdykoli je někdo najat, nebo odstranit operátora, když je někdo vyhozen. Je to možné? Jaké kroky bych podnikl?

40
  • Nastavte skupinu AD jako přihlašovací jméno. A „přihlášení“ znamená přihlášení na úrovni serveru, nikoli koncept AD uživatele/přihlášení. V SQL Server mluví, je to na úrovni serveru
  • Vytvořte namapovaného uživatele. Neměli byste skutečně povolovat uživatele přímo na tabulkách. A „uživatel“ znamená uživatele databáze, nikoli koncept uživatele AD: v SQL Serveru mluvíme o „principu databázové úrovně“
  • Přidat uživatele do role (také „principál databázové úrovně“)
  • GRANT oprávnění k rolím v tabulkách (tabulka nebo proc atd. Je „zabezpečitelná“)

Ukázkový skript

USE master;
GO
CREATE LOGIN [MYDOMAIN\APPLICATION SUPPORT] FROM WINDOWS;
GO
USE mydb;
GO
CREATE USER [MYDOMAIN\APPLICATION SUPPORT] FROM LOGIN [MYDOMAIN\APPLICATION SUPPORT];
GO
CREATE ROLE rSupport;
GO
EXEC sp_addrolemember 'rSupport', 'MYDOMAIN\APPLICATION SUPPORT';
GO
GRANT SELECT, INSERT,UPDATE, etc ON Mytable TO rSupport;
GO

sp_addrolemember je zastaralé počínaje serverem SQL Server 2012, kde se místo toho použije ALTER ROLE .

50
gbn

Od marc_s odpovídání "Jak přidat skupinu uživatelů služby Active Directory jako přihlášení na serveru SQL" :

V SQL Server Management Studio přejděte na Object Explorer > (your server) > Security > Logins a klepněte pravým tlačítkem myši New Login:

enter image description here

Poté v dialogovém okně, které se objeví, vyberte typy objektů, které chcete vidět (ve výchozím nastavení je Groups zakázáno - zaškrtněte to!) A vyberte umístění, kde chcete objekty hledat (např. Použijte Entire Directory) a poté najděte svou skupinu reklam.

enter image description here

Nyní máte pravidelné přihlášení k serveru SQL - stejně jako při vytváření jednoho uživatele pro jednoho uživatele služby AD. Poskytněte tomuto novému přihlášení oprávnění k databázím, které potřebuje, a můžete jít!

Kterýkoli člen této skupiny AD se nyní může přihlásit k serveru SQL a používat vaši databázi.

5
Even Mien

Udělení oprávnění v rámci SQL Serveru skupině AD je poměrně jednoduché. To lze provést buď pomocí T-SQL nebo Management Studio.

Například pokud máte skupinu reklam s názvem MYDOMAIN\APPLICATION SUPPORT, vytvořili byste přihlášení na úrovni serveru a poté pomocí mapování k jednotlivým databázím poskytli trochu podrobnější oprávnění, například čtečku dat.

V ideálním případě by veškerý přístup k aplikacím měl probíhat prostřednictvím uložených procedur *, takže jsou vyžadována pouze oprávnění k těmto uloženým procedurám v databázi.

* Z hlediska bezpečnosti, abyste konkrétnímu uživateli umožnili vidět některá konkrétní data, můžete vytvořit proceduru a udělit uživateli vykonat oprávnění k této proceduře a nic jiného. Umožnění přímého dotazování uživatele by znamenalo udělení oprávnění select pro všechny zúčastněné tabulky. Je také snazší pracovat s procedurami a snáze ladit.

Uložené procedury abstraktní přístup do tabulky pryč a omezit přístup. U typů DBA je to jako „Ukaž mi všechny proměnné instance: Nechci používat metody, getery nebo settery“.

4
Peter Schofield

Pokud je uživatel členem domény DOMAIN\SecurityGroup, která má oprávnění Sysadmin v SQL, bude použita při přístupu k databázím. V opačném případě se musíte podívat, jaké domény DOMAIN\SecurityGroup mají v každé databázi oprávnění. Pokud je uživatel členem 2 SecurityGroups, s SecGroupA s výběrovým oprávněním a SecGroupB s oprávněním insert, pak uživatel může vybrat a vložit.

1
Piyush Agrawal