Condividi tramite


Autorizzazioni necessarie per l'esecuzione di SQL Server Profiler

Si applica a: SQL Server Istanza gestita di SQL di Azure

Per impostazione predefinita, l'esecuzione di SQL Server Profiler richiede le stesse autorizzazioni utente necessarie per le stored procedure Transact-SQL usate per la creazione di tracce. Per eseguire SQL Server Profiler, è necessario che agli utenti venga concessa l'autorizzazione ALTER TRACE. Per altre informazioni, vedere CONCEDERE autorizzazioni al server (Transact-SQL).

Importante

I piani di query e il testo delle query, acquisiti dalla traccia SQL e con altri mezzi, ad esempio viste e funzioni a gestione dinamica (DMV, DMFS) ed eventi estesi, possono contenere informazioni riservate. Pertanto, le autorizzazioni ALTER TRACE, SHOWPLAN e l'autorizzazione di copertura VIEW SERVER STATE devono essere concesse solo a coloro che ne hanno bisogno per svolgere le proprie funzioni lavorative, in base al principio dei privilegi minimi.

È anche consigliabile salvare file Showplan o file di traccia che contengono eventi correlati a Showplan solo in una posizione che usa il file system NTFS e limitare l'accesso agli utenti autorizzati a visualizzare informazioni potenzialmente sensibili.

Importante

Traccia SQL e SQL Server Profiler sono deprecati. Anche lo spazio dei nomi Microsoft.SqlServer.Management.Trace che contiene gli oggetti Trace e Replay di Microsoft SQL Server è deprecato.

Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.

In alternativa, usare Eventi estesi. Per altre informazioni sugli eventi estesi, vedere Avvio rapido: Eventi estesi in SQL Server e Profiler XEvent di SSMS.

Nota

I carichi di lavoro di SQL Server Profiler per Analysis Services sono supportati.

Nota

Quando si prova a connettersi a un database SQL di Azure da SQL Server Profiler, viene erroneamente generato un messaggio di errore fuorviante come segue:

  • Per eseguire una traccia su SQL Server, è necessario essere un membro del ruolo predefinito del server sysadmin o disporre dell'autorizzazione ALTER TRACE.

Il messaggio dovrebbe spiegare che il database SQL di Azure non è supportato da SQL Server Profiler.

Autorizzazioni per la riproduzione di tracce

Per riprodurre le tracce, è necessario che l'utente che desidera eseguire questa operazione disponga dell'autorizzazione ALTER TRACE.

Durante la riproduzione, tuttavia, SQL Server Profiler usa il comando EXECUTE AS, se nella traccia riprodotta viene rilevato un evento Audit Login. SQL Server Profiler usa il comando EXECUTE AS per rappresentare l'utente associato all'evento di accesso.

Se SQL Server Profiler rileva un evento di accesso in una traccia da riprodurre, verranno eseguiti i controlli delle autorizzazioni seguenti:

  1. Utente1, che dispone dell'autorizzazione ALTER TRACE, inizia la riproduzione di una traccia.

  2. Nella traccia riprodotta viene rilevato un evento di accesso per Utente2.

  3. SQL Server Profiler usa il comando EXECUTE AS per rappresentare Utente2.

  4. SQL Server prova a eseguire l'autenticazione di Utente2 e, in base ai risultati, si verifica una delle situazioni seguenti:

    1. Se non è possibile eseguire l'autenticazione di Utente2, SQL Server Profiler restituisce un errore e continua la riproduzione della traccia come Utente1.

    2. Se l'autenticazione di Utente2 viene eseguita, la riproduzione della traccia continua come Utente2.

  5. Vengono controllate le autorizzazioni di Utente2 nel database di destinazione e, in base ai risultati, si può verificare una delle situazioni seguenti:

    1. Se Utente2 dispone delle autorizzazioni per il database di destinazione, la rappresentazione ha esito positivo e la riproduzione della traccia viene eseguita come Utente2.

    2. Se Utente2 non dispone delle autorizzazioni per il database di destinazione, il server verifica se esiste un utente Guest nel database.

  6. Viene verificata l'esistenza di un utente Guest nel database di destinazione e, in base ai risultati, si può verificare una delle situazioni seguenti:

    1. Se esiste un account Guest, la riproduzione della traccia viene eseguita come account Guest.

    2. Se nel database di destinazione non esiste un account Guest, viene restituito un errore e la riproduzione della traccia viene eseguita come Utente1.

Nella figura seguente viene illustrato il processo di verifica delle autorizzazioni per la riproduzione delle tracce:

Autorizzazioni per la riproduzione di tracce di SQL Server Profiler.

Vedi anche