Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure Synapse Analytics má dva formáty SQL, které vám umožňují řídit spotřebu prostředků. Tento článek vysvětluje, jak tyto dva faktory řídí ověřování uživatelů.
K ověření ve službě Synapse SQL můžete použít dvě možnosti:
- Ověřování Microsoft Entra
- Ověřování SQL
Ověřování SQL umožňuje starším aplikacím připojit se k Azure Synapse SQL známým způsobem pomocí uživatelského jména a hesla. Ověřování Microsoft Entra ale umožňuje centrálně spravovat přístup k prostředkům Azure Synapse, jako jsou fondy SQL. Azure Synapse Analytics podporuje zakázání místního ověřování, například ověřování SQL během vytváření pracovního prostoru i po jeho vytvoření. Po zakázání můžou autorizovaní uživatelé kdykoli povolit místní ověřování. Další informace o ověřování pouze Microsoft Entra najdete v tématu Zakázání místního ověřování ve službě Azure Synapse Analytics.
Administrativní účty
Existují dva účty pro správu (uživatelské jméno správce SQL a správce Microsoft Entra), které fungují jako správci. Pokud chcete identifikovat tyto účty správce pro fondy SQL, otevřete Azure Portal a přejděte na kartu Vlastnosti vašeho pracovního prostoru Synapse.
Uživatelské jméno správce SQL
Když vytváříte Azure Synapse Analytics, musíte pojmenovat přihlašovací jméno správce serveru. SQL Server vytvoří tento účet jako přihlášení k
masterdatabázi. Tento účet používá pro připojení ověřování SQL Serveru (uživatelské jméno a heslo). Existovat může jenom jeden z těchto účtů.Správce Microsoft Entra
Jeden účet Microsoft Entra, buď individuální, nebo účet skupiny zabezpečení, může být také nakonfigurován jako správce. Je volitelné nakonfigurovat správce Microsoft Entra, ale pokud chcete pro připojení k Synapse SQL použít účty Microsoft Entra, musí být nakonfigurovaný správce Microsoft Entra.
- Účet správce Microsoft Entra řídí přístup k vyhrazeným fondům SQL, zatímco role Synapse RBAC je možné použít k řízení přístupu k bezserverovým fondům, například s rolí Správce Synapse a Synapse SQL.
Uživatelské jméno správce SQL a účty správce Microsoft Entra mají následující charakteristiky:
- Jsou jedinými účty, které se můžou automaticky připojit k jakékoli databázi SQL na serveru. (Pro připojení k uživatelské databázi ostatní účty musí buď být vlastníkem databáze, nebo musí v uživatelské databázi mít uživatelský účet.)
- Tyto účty přistupují k uživatelským databázím jako uživatel
dboa mají pro ně veškerá oprávnění. (Vlastník databáze také k databázi přistupuje jako uživateldbo.) - Nevstupujte do
masterdatabáze jako uživateldbo, a mějte omezená oprávnění v databázimaster. - Nejsou členy pevné role standardního serveru SQL Server
sysadmin, která není dostupná ve službě SQL Database. - Může vytvářet, měnit a odstraňovat databáze; vytvářet, měnit a odstraňovat přihlášení a uživatele v databázi
master; a spravovat pravidla IP brány firewall na úrovni serveru. - Může přidávat a odebírat členy do
dbmanagerrolí aloginmanagerrolí. - Může zobrazit systémovou
sys.sql_loginstabulku.
Poznámka:
Pokud je uživatel nakonfigurovaný jako správce Microsoft Entra a Správce Synapse a potom odebrán z role správce Microsoft Entra, uživatel ztratí přístup k vyhrazeným fondům SQL ve službě Synapse. Aby bylo možné znovu získat přístup k vyhrazeným fondům SQL, je potřeba je odebrat a pak je přidat do role správce Synapse.
Pokud chcete spravovat uživatele, kteří mají přístup k bezserverovém fondu SQL, můžete použít následující pokyny.
Pokud chcete vytvořit přihlášení k bezserverovém fondu SQL, použijte následující syntaxi:
CREATE LOGIN Mary WITH PASSWORD = '<strong_password>';
-- or
CREATE LOGIN [Mary@domainname.net] FROM EXTERNAL PROVIDER;
Pokud přihlášení existuje, můžete vytvořit uživatele v jednotlivých databázích v koncovém bodu bezserverového fondu SQL a udělit těmto uživatelům požadovaná oprávnění. K vytvoření uživatele můžete použít následující syntaxi:
CREATE USER Mary FROM LOGIN Mary;
-- or
CREATE USER Mary FROM LOGIN Mary@domainname.net;
-- or
CREATE USER [mike@contoso.com] FROM EXTERNAL PROVIDER;
Po vytvoření přihlášení a uživatele můžete k udělení práv použít běžnou syntaxi SQL Serveru.
Uživatelé bez oprávnění správce
Obecně platí, že účty bez oprávnění správce nepotřebují přístup k master databázi. Uživatele databáze s omezením můžete vytvářet pomocí příkazu CREATE USER (Transact-SQL).
Uživatel může být uživatelem databáze s ověřováním Microsoft Entra (pokud jste konfiguraci prostředí provedli pro ověřování Microsoft Entra), uživatelem databáze s obsaženým ověřováním SQL Serveru nebo uživatelem SQL Serveru na základě přihlášení k ověřování SQL Serveru (vytvořeného v předchozím kroku).
Pokud chcete vytvářet uživatele, připojte se k databázi a spusťte podobné příkazy jako v následujících příkladech:
CREATE USER Mary FROM LOGIN Mary;
CREATE USER [mike@contoso.com] FROM EXTERNAL PROVIDER;
Na začátku může uživatele vytvořit jenom jeden ze správců nebo vlastník databáze. Jestliže chcete autorizovat další uživatele, aby mohli vytvářet nové uživatele, udělte vybraným uživatelům oprávnění ALTER ANY USER pomocí příkazu, jako je například tento:
GRANT ALTER ANY USER TO Mary;
Pokud chcete dalším uživatelům poskytnout úplnou kontrolu nad databází, nastavte je jako člen db_owner pevné databázové role.
V Bezserverové službě Azure SQL Database nebo Synapse použijte příkaz ALTER ROLE .
ALTER ROLE db_owner ADD MEMBER Mary;
Ve vyhrazeném fondu SQL použijte EXEC sp_addrolemember.
EXEC sp_addrolemember 'db_owner', 'Mary';
Poznámka:
Jedním z běžných důvodů, proč vytvořit uživatele databáze na základě přihlášení k serveru, je pro uživatele, kteří potřebují přístup k více databázím. Vzhledem k tomu, že uživatelé databáze s omezením jsou jednotlivé entity, každá databáze udržuje vlastního uživatele a vlastní heslo. To může způsobit zvýšenou zátěž, protože si uživatel pak musí pamatovat každé heslo pro každou databázi, a při nutnosti měnit více hesel pro mnoho databází se situace může stát neudržitelnou.
Skupiny a role
Efektivní správa přístupů využívá oprávnění přiřazená skupinám a rolím, nikoliv jednotlivým uživatelům.
Při použití ověřování Microsoft Entra vložte uživatele Microsoft Entra do skupiny Microsoft Entra. Pro tuto skupinu vytvořte uživatele databáze s omezením. Přidejte jednoho nebo více uživatelů databáze do databázové role a potom této databázové roli přiřaďte oprávnění.
Pokud používáte ověřování SQL Serveru, vytvořte v databázi obsažené uživatele databáze. Přidejte jednoho nebo více uživatelů databáze do databázové role a potom této databázové roli přiřaďte oprávnění.
Mezi databázové role patří například předdefinované role db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter a db_denydatareader. Role db_owner se obvykle používá k udělení úplných oprávnění pouze několika uživatelům. Ostatní pevné databázové role jsou užitečné pro rychlé vytvoření jednoduché databáze ve vývojovém prostředí, ale nedoporučují se pro většinu databází v produkčním prostředí.
Pevná databázová role db_datareader například uděluje přístup pro čtení pro všechny tabulky v databázi, což je obvykle více, než je skutečně nezbytné.
Mnohem lepší je použít příkaz CREATE ROLE k vytvoření vlastních uživatelsky definovaných databázových rolí a pečlivě udělovat jednotlivým rolím nejmenší oprávnění potřebná pro obchodní potřebu. Pokud je uživatel členem více rolí, všechna jejich oprávnění se agregují.
Oprávnění
Ve službě SQL Database je dostupných více než 100 oprávnění, která můžete jednotlivě přidělit nebo zamítnout. Mnohá z těchto oprávnění jsou vnořená. Oprávnění UPDATE pro schéma například zahrnuje oprávnění UPDATE pro každou tabulku v tomto schématu. Podobně jako ve většině systémů oprávnění má odepření oprávnění přednost před jeho udělením.
Kvůli velkému počtu oprávnění a používání vnořených oprávnění může návrh vhodného systému oprávnění vyžadovat pečlivou studii, aby byla vaše databáze dobře chráněna.
Začněte seznamem oprávnění v Oprávnění (databázový stroj) a zkontrolujte grafiku ve velikosti plakátu oprávnění databázového stroje.
Důležité informace a omezení
Při správě přihlášení a uživatelů ve službě SQL Database zvažte následující body:
- Při provádění
masterpříkazů musíte být připojeni kCREATE/ALTER/DROP DATABASEdatabázi. - Uživatele databáze odpovídající přihlášení správce serveru nelze změnit ani vynechat.
- Administrátor serveru bude zakázán, pokud je povoleno ověřování pouze pomocí Microsoft Entra.
- Výchozím jazykem přihlášení správce serveru je americká angličtina.
- Pouze správci (přihlášení správce serveru nebo správce Microsoft Entra) a členové role dbmanager v databázi
mastermají oprávnění k provádění příkazůCREATE DATABASEaDROP DATABASE. - Při provádění
masterpříkazů musíte být připojeni kCREATE/ALTER/DROP LOGINdatabázi. Používání přihlášení se ale nedoporučuje. Použijte raději databázové uživatele s omezením. Další informace najdete v tématu Uživatelé databáze s omezením – zajištění přenositelnosti databáze. - Pokud se chcete připojit k uživatelské databázi, musíte v připojovacím řetězci uvést název databáze.
- Pouze hlavní přihlašovací údaj na úrovni serveru a členové role databáze loginmanager v databázi
mastermají oprávnění ke spuštění příkazůCREATE LOGIN,ALTER LOGINaDROP LOGIN. - Při provádění
CREATE/ALTER/DROP LOGINpříkazů aCREATE/ALTER/DROP DATABASEpříkazů v aplikaci ADO.NET není použití parametrizovaných příkazů povoleno. Další informace viz Příkazy a parametry. - Při provádění příkazu
CREATE USERs možnostíFOR/FROM LOGINmusí jít o jediný příkaz v dávce Transact-SQL. - Při provádění příkazu
ALTER USERs možnostíWITH LOGINmusí jít o jediný příkaz v dávce Transact-SQL. -
CREATE/ALTER/DROP LOGINaCREATE/ALTER/DROP USERpříkazy nejsou podporovány, pokud je pro pracovní prostor Azure Synapse povolené ověřování pouze Microsoft Entra. - Pokud chcete použít příkaz
CREATE/ALTER/DROPpro vytvoření, změnu nebo odstranění uživatele, musíte mít v databázi oprávněníALTER ANY USER. - Když se vlastník databázové role pokusí přidat nebo odebrat jiného uživatele databáze nebo z této databázové role, může dojít k následující chybě: Uživatel nebo role Jméno v této databázi neexistuje. K této chybě dochází, protože uživatel není viditelný pro vlastníka. Problém vyřešíte tak, že vlastníkovi role udělíte oprávnění
VIEW DEFINITIONpro daného uživatele.
Související obsah
Další informace najdete v tématu Uživatelé databáze s omezením – zajištění přenositelnosti databáze.