Sdílet prostřednictvím


Aplikační role

platí pro: SQL Server Azure SQL DatabaseAzure SQL Managed Instance

Role aplikace je objekt zabezpečení databáze, který umožňuje aplikaci fungovat s vlastními oprávněními podobnými uživateli. Role aplikací můžete použít k povolení přístupu ke konkrétním datům jenom uživatelům, kteří se připojují prostřednictvím konkrétní aplikace. Na rozdíl od databázových rolí role aplikace neobsahují žádné členy a nejsou ve výchozím nastavení neaktivní. Aplikační role jsou povoleny pomocí sp_setapprole, které vyžaduje heslo. Vzhledem k tomu, že role aplikací jsou hlavní objekt zabezpečení na úrovni databáze, mohou přistupovat k dalším databázím jen přes oprávnění udělená v těchto databázích hostovi. Proto je každá databáze, ve které byl host zakázán, nepřístupná pro role aplikací v jiných databázích.

V SQL Serveru nemají aplikační role přístup k metadatům na úrovni serveru, protože nejsou přidružené k hlavnímu objektu zabezpečení na úrovni serveru. Chcete-li toto omezení zakázat a umožnit tak aplikačním rolím přístup k metadatům na úrovni serveru, nastavte příznak globálního trasování 4616 pomocí -T4616 nebo DBCC TRACEON (4616, -1). Pokud nechcete tento příznak trasování povolit, můžete použít uloženou proceduru podepsanou certifikátem a umožnit tak rolím aplikace zobrazit stav serveru. Ukázkový kód najdete v tomto ukázkovém skriptu na GitHubu.

Připojit se k roli aplikace

Následující kroky tvoří proces, podle kterého role aplikace přepíná kontexty zabezpečení:

  1. Uživatel spustí klientskou aplikaci.

  2. Klientská aplikace se připojí k instanci SQL Serveru jako uživatel.

  3. Aplikace pak spustí uloženou proceduru sp_setapprole s heslem známým pouze pro aplikaci.

  4. Pokud je název role aplikace a heslo platné, je tato role aplikace povolená.

  5. V tomto okamžiku připojení ztratí oprávnění uživatele a předpokládá oprávnění role aplikace.

Oprávnění získaná prostřednictvím role aplikace zůstávají platná po dobu trvání připojení.

V dřívějších verzích SQL Serveru byl jediný způsob, jak uživatel mohl po spuštění role aplikace znovu získat svůj původní kontext zabezpečení, odpojení a opětovné připojení k SQL Serveru. Počínaje SQL Serverem 2005 (9.x) sp_setapprole má možnost, která vytvoří soubor cookie. Soubor cookie obsahuje informace o kontextu před povolením role aplikace. Uložená procedura sp_unsetapprole pak použije soubor cookie k vrácení relace do původního kontextu. Informace o této nové možnosti a příkladu najdete v tématech sp_setapprole (Transact-SQL) a sp_unsetapprole (Transaction-SQL).

Důležité

SqlClient nepodporuje možnost šifrování ODBC. Při přenosu důvěrných informací přes síť použijte protokol TLS (Transport Layer Security), dříve označovaný jako SSL (Secure Sockets Layer) nebo protokol IPsec k šifrování kanálu. Pokud musíte v klientské aplikaci zachovat přihlašovací údaje, zašifrujte přihlašovací údaje pomocí funkcí kryptografického rozhraní API. V SYSTÉMU SQL Server 2005 (9.x) a novějších verzích je heslo parametru uloženo jako jednosměrná hodnota hash.

Task Typ
Vytvořte roli aplikace. Vytvoření role aplikace a VYTVOŘENÍ ROLE APLIKACE (Transact-SQL)
Změna role aplikace ZMĚNA ROLE APLIKACE (Transact-SQL)
Odstraňte roli aplikace. ZRUŠIT PŘIHLÁŠKU (Transact-SQL)
Použití role aplikace sp_setapprole (Transact-SQL)

Viz také

Zabezpečení SQL Serveru