Condividi tramite


Creare un ruolo di applicazione

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

Questo articolo descrive come creare un ruolo applicazione in SQL Server usando SQL Server Management Studio o Transact-SQL. I ruoli applicazione limitano l'accesso dell'utente a un database solo tramite applicazioni specifiche. I ruoli di applicazione non hanno utenti, quindi l'elenco Membri del ruolo non viene visualizzato quando è selezionato il ruolo di applicazione.

Importante

In fase di impostazione delle password per i ruoli applicazione viene eseguito il controllo dei requisiti di complessità delle password. Le applicazioni che richiamano i ruoli applicazione devono archiviare le relative password. Le password dei ruoli applicazione devono essere sempre archiviate in forma crittografata.

Sfondo

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) 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. Questo miglioramento della sicurezza utilizza un algoritmo di hashing più avanzato, che può leggermente aumentare il tempo di accesso per gli account SQL Authentication. L'impatto è in genere inferiore negli ambienti con il pool di connessioni, ma potrebbe essere più evidente negli scenari senza pool o in cui la latenza di accesso viene monitorata attentamente.

Usa SQL Server Management Studio

  1. In l'Esplora oggetti, espandere il database in cui si desidera creare un ruolo applicativo.

  2. Espandere la cartella Sicurezza .

  3. Espandere la cartella Ruoli .

  4. Fare clic con il pulsante destro del mouse sulla cartella Ruoli applicazione, quindi scegliere Nuovo ruolo applicazione....

  5. Nella pagina Generale della finestra di dialogo Ruolo applicazione - Nuovoimmettere il nome del nuovo ruolo applicazione nella casella Nome ruolo.

  6. Nella casella Schema predefinito specificare lo schema che diventerà proprietario degli oggetti creati da questo ruolo immettendo i nomi degli oggetti. In alternativa, selezionare i puntini di sospensione (...) per aprire la finestra di dialogo Locate Schema.

  7. Nella casella Password , immettere una password per il nuovo ruolo. Digitare di nuovo la password nella casella Conferma password .

  8. In Schemi di proprietà del ruolo, selezionare o visualizzare gli schemi che saranno di proprietà di questo ruolo. Uno schema può essere di proprietà di un solo schema o ruolo.

  9. Seleziona OK.

Opzioni aggiuntive

Nella finestra di dialogo Ruolo applicazione - Nuovo sono anche disponibili opzioni in due pagine aggiuntive, cioè Entità a protezione diretta e Proprietà estese.

  • Nella pagina Securables sono elencati tutti i possibili securables e le autorizzazioni su questi securables che possono essere concesse al login.

  • La pagina Proprietà estese consente di aggiungere proprietà personalizzate a utenti di database.

Usare transact-SQL

  1. In Esplora oggetti, connettersi a un'istanza del Motore di Database.

  2. Sulla barra Standard selezionare Nuova query.

  3. Copiare e incollare l'esempio seguente nella finestra di query e selezionare Esegui. Questo codice crea un ruolo applicazione denominato weekly_receipts con una password e Sales come schema predefinito. Sostituire <password> con una password complessa.

    -- 
    
    CREATE APPLICATION ROLE weekly_receipts
        WITH PASSWORD = '<password>'
        , DEFAULT_SCHEMA = Sales;
    GO
    

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY APPLICATION ROLE per il database.