Condividi tramite


Autorizzazioni necessarie per eseguire SQL Server Profiler

Si applica a:SQL ServerIstanza 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, agli utenti deve essere concessa l'autorizzazione ALTER TRACE . Per informazioni, vedere GRANT Server Permissions.

Nota

Traccia SQL e SQL Server Profiler sono deprecati. Il namespace Microsoft.SqlServer.Management.Trace che contiene gli oggetti di Traccia e Riproduzione di Microsoft SQL Server è anche 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 su Eventi estesi, vedere Avvio rapido: Eventi estesi e Utilizzare Profiler XEvent di SSMS.

Osservazioni:

  • I piani di query e il testo delle query, acquisiti da Traccia SQL e da altri mezzi, ad esempio le viste a gestione dinamica (DMV), le funzioni a gestione dinamica (DMFS) e gli eventi estesi, possono contenere informazioni riservate. Di conseguenza, le autorizzazioni ALTER TRACE, SHOWPLANe l'autorizzazione VIEW SERVER STATE di copertura devono essere concesse solo agli utenti che necessitano di queste autorizzazioni per soddisfare le proprie funzioni di lavoro, 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.

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

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

    In order to run a trace against SQL Server, you must be a member of **sysadmin** fixed server role or have the ALTER TRACE permission.
    

    Il messaggio deve indicare che il database SQL di Azure non è supportato da SQL Server Profiler.

Autorizzazioni usate per riprodurre le tracce

La riproduzione di tracce richiede inoltre che l'utente che sta riproducendo la traccia disponga dell'autorizzazione ALTER TRACE .

Tuttavia, durante la riproduzione, SQL Server Profiler usa il EXECUTE AS comando se viene rilevato un evento Audit Login nella traccia che viene riprodotta. SQL Server Profiler usa il EXECUTE AS comando 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. User1, che dispone dell'autorizzazione ALTER TRACE , avvia la riproduzione di una traccia.

  2. Viene rilevato un evento di accesso per User2 nella traccia riprodotta.

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

  4. SQL Server tenta di autenticare User2e, a seconda dei risultati, si verifica una delle operazioni seguenti:

    1. Se User2 non è possibile eseguire l'autenticazione, SQL Server Profiler restituisce un errore e continua a riprodurre la traccia come User1.

    2. Se l'autenticazione di User2 viene eseguita correttamente, la traccia continua a essere riprodotta come User2.

  5. Le autorizzazioni per User2 vengono controllate nel database di destinazione e, a seconda dei risultati, si verifica uno degli scenari seguenti:

    1. Se User2 dispone delle autorizzazioni per il database di destinazione, la rappresentazione è riuscita e la traccia viene riprodotta come User2.

    2. Se User2 non dispone delle autorizzazioni per il database di destinazione, il server verifica la presenza di un Guest utente in tale database.

  6. L'esistenza di un Guest utente viene controllata nel database di destinazione e, a seconda dei risultati, si verifica una delle operazioni seguenti:

    1. Se esiste un Guest account, la traccia viene riprodotta come Guest account.

    2. Se non esiste alcun Guest account nel database di destinazione, viene restituito un errore e la traccia viene riprodotta come User1.

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

Screenshot delle autorizzazioni di riproduzione della traccia di SQL Server Profiler.