Condividi tramite


ALTER APPLICATION ROLE (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di Azure

Modifica il nome, la password o lo schema predefinito di un ruolo applicazione.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

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

Argomenti

application_role_name

Nome del ruolo applicazione da modificare.

NAME = new_application_role_name

Specifica il nuovo nome del ruolo applicazione. Il nome non deve già essere usato per fare riferimento a un'altra entità nel database.

PASSWORD = 'password'

Viene specificata la password per il ruolo applicazione. password deve soddisfare i requisiti dei criteri password di Windows del computer che esegue l'istanza di SQL Server. È necessario usare sempre password complesse.

DEFAULT_SCHEMA = schema_name

Viene specificato il primo schema in cui tramite il server verrà eseguita la ricerca per la risoluzione dei nomi degli oggetti. schema_name può essere uno schema che non esiste nel database.

Osservazioni:

Se il nuovo nome del ruolo applicazione esiste già nel database, l'istruzione ha esito negativo. Quando il nome, la password o lo schema predefinito di un ruolo applicazione viene modificato l'ID associato al ruolo non viene modificato.

Importante

I criteri di scadenza delle password non vengono applicati alle password del ruolo applicazione. Per questo motivo, si consiglia di prestare la massima attenzione nella scelta di password complesse. Le applicazioni che richiamano i ruoli applicazione devono archiviare le relative password.

I ruoli applicazione sono visibili nella vista del sys.database_principals catalogo.

Annotazioni

Gli schemi non sono equivalenti agli utenti del database. Usare le viste del catalogo di sistema per identificare eventuali differenze tra gli utenti del database e gli schemi.

A partire da SQL Server 2012 (11.x), SQL Server e database SQL di Azure usavano un hash SHA-512 combinato con un salt casuale e univoco a 32 bit. Questo metodo ha reso statisticamente infeasible per gli utenti malintenzionati di dedurre le password.

SQL Server 2025 (17.x) Preview introduce un algoritmo hash iterato, RFC2898, noto anche come funzione di derivazione della chiave basata su password (PBKDF). Questo algoritmo usa ancora SHA-512, ma esegue l'hashing della password più volte (100.000 iterazioni), rallentando significativamente gli attacchi di forza bruta. Questa modifica migliora la protezione delle password in risposta alle minacce alla sicurezza in continua evoluzione e aiuta i clienti a rispettare le linee guida NIST SP 800-63b.

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY APPLICATION ROLE nel database. Per modificare lo schema predefinito, è inoltre richiesta l'autorizzazione ALTER per il ruolo applicazione. Un ruolo applicazione può modificare il proprio schema predefinito, ma non il nome o la password.

Esempi

R. Modifica del nome del ruolo applicazione

Nell'esempio seguente viene modificato il nome del ruolo applicazione weekly_receipts in 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. Modifica della password del ruolo applicazione

Nell'esempio seguente viene modificata la password del ruolo applicazione receipts_ledger.

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

C. Modifica del nome, della password e dello schema predefinito

Nell'esempio seguente vengono modificati contemporaneamente il nome, la password e lo schema predefinito del ruolo applicazione receipts_ledger.

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