Sdílet prostřednictvím


ZMĚNA ROLE APLIKACE (Transact-SQL)

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

Změní název, heslo nebo výchozí schéma role aplikace.

Transact-SQL konvence syntaxe

Syntaxe

ALTER APPLICATION ROLE application_role_name
    WITH <set_item> [ , ...n ]

<set_item> ::=
    NAME = new_application_role_name
    | PASSWORD = 'password'
    | DEFAULT_SCHEMA = schema_name

Argumenty

application_role_name

Název role aplikace, která se má upravit.

NÁZEV = new_application_role_name

Určuje nový název role aplikace. Tento název již nesmí být použit pro odkaz na žádný objekt zabezpečení v databázi.

PASSWORD = 'heslo'

Určuje heslo pro roli aplikace. password musí splňovat požadavky na zásady hesel systému Windows počítače, na kterém je spuštěna instance SYSTÉMU SQL Server. Vždy byste měli používat silná hesla.

DEFAULT_SCHEMA = schema_name

Určuje první schéma, které bude server prohledávat při překladu názvů objektů. schema_name může být schéma, které v databázi neexistuje.

Poznámky

Pokud nový název role aplikace již v databázi existuje, příkaz selže. Pokud se změní název, heslo nebo výchozí schéma role aplikace, nezmění se ID přidružené k této roli.

Důležité

Zásady vypršení platnosti hesla se neuplatní na hesla rolí aplikací. Z tohoto důvodu je potřeba pečlivě vybrat silná hesla. Aplikace, které vyvolávají role aplikací, musí ukládat svá hesla.

Role aplikací jsou viditelné v sys.database_principals zobrazení katalogu.

Poznámka:

Schémata nejsou ekvivalentní uživatelům databáze. Pomocí zobrazení katalogu systému identifikujte všechny rozdíly mezi uživateli databáze a schématy.

Počínaje SQL Serverem 2012 (11.x) sql Server a Azure SQL DB používaly hodnotu hash SHA-512 v kombinaci s 32bitovou náhodnou a jedinečnou solí. Tato metoda znepřístupnil útočníkům statisticky neproveditelná hesla.

SQL Server 2025 (17.x) zavádí algoritmus iterated hash, RFC2898, označovaný také jako funkce odvození klíče založené na heslech (PBKDF). Tento algoritmus stále používá algoritmus SHA-512, ale několikrát zatřiďuje heslo (100 000 iterací), což výrazně zpomaluje útoky hrubou silou. Tato změna vylepšuje ochranu heslem v reakci na vyvíjející se bezpečnostní hrozby a pomáhá zákazníkům dodržovat pokyny NIST SP 800-63b. Toto vylepšení zabezpečení používá silnější algoritmus hash, který může mírně zvýšit dobu přihlášení pro přihlášení k ověřování SQL. Dopad je obecně nižší v prostředích s sdružováním připojení, ale může být patrnější ve scénářích bez sdružování nebo v případě, že se latence přihlášení pečlivě monitoruje.

Povolení

Vyžaduje oprávnění ALTER ANY APPLICATION ROLE pro databázi. Aby uživatel mohl změnit výchozí schéma, potřebuje pro roli aplikace také oprávnění ALTER. Role aplikace může změnit vlastní výchozí schéma, ale ne jeho název nebo heslo.

Příklady

A. Změna názvu role aplikace

Následující příklad změní název role weekly_receipts aplikace na receipts_ledger.

USE AdventureWorks2022;
CREATE APPLICATION ROLE weekly_receipts
    WITH PASSWORD = '987Gbv8$76sPYY5m23' ,
    DEFAULT_SCHEMA = Sales;
GO
ALTER APPLICATION ROLE weekly_receipts
    WITH NAME = receipts_ledger;
GO

B. Změna hesla role aplikace

Následující příklad změní heslo role receipts_ledgeraplikace .

ALTER APPLICATION ROLE receipts_ledger
    WITH PASSWORD = '897yUUbv867y$200nk2i';
GO

C. Změna názvu, hesla a výchozího schématu

Následující příklad změní název, heslo a výchozí schéma role receipts_ledger aplikace najednou.

ALTER APPLICATION ROLE receipts_ledger
    WITH NAME = weekly_ledger,
    PASSWORD = '897yUUbv77bsrEE00nk2i',
    DEFAULT_SCHEMA = Production;
GO