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.
platí pro: SQL Server
Azure SQL Database
Azure 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í:
Uživatel spustí klientskou aplikaci.
Klientská aplikace se připojí k instanci SQL Serveru jako uživatel.
Aplikace pak spustí uloženou proceduru
sp_setapproles heslem známým pouze pro aplikaci.Pokud je název role aplikace a heslo platné, je tato role aplikace povolená.
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.
Související úkoly
| 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) |