Avvio rapido: Eventi estesi
Si applica a: SQL Server, Database SQL di Azure e Istanza gestita di SQL di Azure
Gli Eventi estesi costituiscono una funzionalità del monitoraggio delle prestazioni leggera che consente di raccogliere i dati per il monitoraggio e la risoluzione dei problemi. Usando gli Eventi estesi, è possibile visualizzare i dettagli delle operazioni interne del motore di database rilevanti per il monitoraggio delle prestazioni e la risoluzione dei problemi. Per altre informazioni sugli Eventi estesi, vedere Informazioni generali sugli eventi estesi.
Questo articolo ha lo scopo di aiutare gli amministratori, i tecnici e gli sviluppatori di SQL che non hanno esperienza con gli Eventi estesi e che vogliono iniziare a usarli e visualizzare i dati degli eventi in pochi minuti.
Gli Eventi estesi sono noti anche come XEvent e talvolta solo come XE.
Dopo avere letto l'articolo, si è in grado di:
- Vedere come creare una sessione eventi in SQL Server Management Studio (SSMS), con screenshot di esempio.
- Screenshot correlati alle istruzioni Transact-SQL equivalenti.
- Comprendere in dettaglio i termini e i concetti alla base dell'interfaccia utente di SSMS e delle istruzioni T-SQL XEvents.
- Informazioni su come testare la sessione eventi.
- Comprendere i risultati della sessione, tra i quali:
- Opzioni disponibili per l'archiviazione dei risultati
- Risultati elaborati rispetto a risultati non elaborati
- Strumenti per visualizzare i risultati in modi diversi e su diverse scale cronologiche
- Scopri come cercare e individuare tutti gli eventi disponibili.
- Comprendere le relazioni tra le viste di sistema degli eventi estesi.
Suggerimento
Per altre informazioni sugli Eventi estesi per il database SQL di Azure, tra cui anche codici di esempio, vedere Eventi estesi nel database SQL di Azure e nell’Istanza gestita di SQL di Azure.
Prerequisiti
Per iniziare, è necessario:
- Scaricare SQL Server Management Studio (SSMS). È consigliabile utilizzare una versione recente di SSMS con i miglioramenti e le correzioni più recenti.
- Assicurarsi che l'account abbia
CREATE ANY EVENT SESSION
(introdotto in SQL Server 2022) oALTER ANY EVENT SESSION
l'autorizzazione server. - Inoltre, quando si usa SSMS e per visualizzare le sessioni create, l'account di accesso richiede l'autorizzazione
VIEW SERVER PERFORMANCE STATE
.
Informazioni sulla sicurezza e le autorizzazioni correlate agli Eventi estesi sono disponibili nell'Appendice alla fine di questo articolo.
Eventi estesi in SSMS
SSMS fornisce un'interfaccia utente completamente funzionale per gli Eventi estesi. Molti scenari possono essere eseguiti utilizzando questa interfaccia utente, senza dover usare T-SQL o DMV.
La sezione successiva illustra i passaggi dell'interfaccia utente necessari per creare una sessione di Eventi estesi e visualizzare i dati segnalati. Dopo aver esaminato i passaggi pratici o rivisto quelli presenti in questo articolo, è possibile leggere i concetti coinvolti nei passaggi per una comprensione più approfondita.
Creare una sessione di evento in SSMS
Quando si crea una sessione di Eventi estesi, si indica al sistema:
- Eventi a cui si è interessati.
- La modalità desiderata di ricezione delle segnalazioni di dati.
La dimostrazione apre la finestra di dialogo Nuova sessione, che mostra come usare le quattro pagine, denominate:
- Generali
- Eventi
- Archiviazione dati
- Avanzato
Il testo e gli screenshot di supporto possono essere leggermente diversi nella versione di SSMS, ma devono ugualmente essere rilevanti per la spiegazione dei concetti di base.
Connessione a un'istanza del motore di database. Gli Eventi estesi sono supportati a partire da SQL Server 2014 (12.x), in database SQL di Azure e Istanza gestita di SQL di Azure.
In Esplora oggetti, selezionare Gestione > Eventi estesi. In database SQL di Azure, le sessioni di eventi sono con ambito database, quindi l'opzione Eventi estesi è disponibile in ogni database, non in Gestione.
Fare clic con il pulsante destro del mouse sulla cartella Sessioni e scegliere Nuova sessione. La finestra di dialogo Nuova sessione è preferibile alla Creazione guidata nuova sessione, anche se le due sono simili.
Suggerimento
In questi passaggi dell'esercitazione, non premere OK fino a quando non sono state avanzate tutte e quattro le pagine: Generale, Eventi, Archiviazione dati e Avanzate.
Selezionare la scheda Generale. Quindi digitare
YourSession
, o qualsiasi nome desiderato, nella casella di testo Nome sessione. Non selezionare ancora OK, perché è comunque necessario immettere alcuni dettagli in altre pagine.Selezionare la pagina Eventi.
Nell'elenco a discesa dell'area Libreria di eventi scegliere Solo nomi evento.
- Digitare
sql_statement
nella casella di testo. In questo modo l'elenco viene filtrato per visualizzare solo gli eventi consql_statement
nel nome. - Scorrere e selezionare l'evento denominato
sql_statement_completed
. - Selezionare il pulsante freccia destra
>
per spostare l'evento nella casella Eventi selezionati.
- Digitare
Sempre nella pagina Eventi selezionare il pulsante Configura. In questo modo viene aperta la casella Opzioni di configurazione evento per gli eventi selezionati.
Selezionare la scheda Filtro (predicato). Selezionare quindi la nuova riga di filtro che indica Fare clic qui per aggiungere una clausola. In questa esercitazione questo filtro ,noto anche come predicato, verrà configurato per acquisire tutte le
SELECT
istruzioni con unaHAVING
clausola .Nell'elenco a discesa Campo, scegliere
sqlserver.sql_text
.- Per Operatore, scegliere
like_i_sql_unicode_string
. In questo caso,i
nel nome dell'operatore significa senza distinzione tra maiuscole e minuscole. - Per Valore, digitare
%SELECT%HAVING%
. In questo caso, i segni di percentuale (%
) sono caratteri jolly in piedi per qualsiasi stringa di caratteri.
Nota
Nel nome del campo in due parti, sqlserver è il nome del pacchetto e sql_text è il nome del campo. L'evento scelto in precedenza, sql_statement_completed, deve essere nello stesso pacchetto del campo scelto.
- Per Operatore, scegliere
Selezionare la pagina Archiviazione dati.
Nell'area Destinazioni selezionare la nuova riga Tipo di destinazione che indica Fare clic qui per aggiungere una destinazione. In questa esercitazione verranno scritti i dati degli eventi estesi acquisiti in un file di eventi. Selezionando questa opzione i dati degli eventi vengono archiviati in un file che è possibile aprire e visualizzare in seguito. A partire da SQL Server 2019 (15.x), i dati degli eventi possono essere scritti anche per essere archiviati in Archiviazione di Azure, il valore predefinito in Azure SQL.
- Nell'elenco a discesa Tipo scegliere
event_file
.
- Nell'elenco a discesa Tipo scegliere
Nell'area Proprietà, digitare un nome di percorso e file completo nella casella di testo Nome file sul server. È anche possibile usare il pulsante Sfoglia. L'estensione di file deve essere
xel
. Nell'esempio è stato usatoC:\temp\YourSession_Target.xel
.Selezionare la pagina delle proprietà Avanzate. Per impostazione predefinita, questa destinazione con estensione xel della sessione eventi estesa deve avere un impatto minimo o negativo sulle prestazioni del server, ma queste impostazioni nella pagina Avanzate possono essere usate per aumentare o ridurre le risorse e la latenza.
Selezionare il pulsante OK nella parte inferiore per creare questa sessione eventi.
Tornare al Esplora oggetti di SSMS, aprire o aggiornare la cartella Sessioni e visualizzare il nuovo nodo per la
YourSession
sessione degli eventi estesi. La sessione non è ancora stata avviata. In questa esercitazione verrà avviata in un secondo momento.
Modificare una sessione eventi in SSMS
In Esplora oggetti di SSMS è possibile modificare la sessione eventi facendo clic con il pulsante destro del mouse sul relativo nodo e quindi selezionando Proprietà. Viene visualizzata la stessa finestra di dialogo a più pagine.
Creare una sessione eventi usando T-SQL
In SSMS è possibile generare uno script T-SQL per creare la sessione eventi come indicato di seguito:
- Fare clic con il pulsante destro del mouse sul nodo della sessione eventi e quindi selezionare Crea script per sessione > CREATE in > Appunti.
- Incollare in qualsiasi editor di testo.
Qui è riportata l'istruzione T-SQL CREATE EVENT SESSION
generata per YourSession
:
CREATE EVENT SESSION [YourSession]
ON SERVER -- For SQL Server and Azure SQL Managed Instance
-- ON DATABASE -- For Azure SQL Database
ADD EVENT sqlserver.sql_statement_completed
(
ACTION(sqlserver.sql_text)
WHERE
( [sqlserver].[like_i_sql_unicode_string]([sqlserver].[sql_text], N'%SELECT%HAVING%')
)
)
ADD TARGET package0.event_file
(SET filename=N'C:\temp\YourSession_Target.xel');
GO
Nota
In database SQL di Azure usare ON DATABASE
anziché ON SERVER
.
DROP condizionale della sessione eventi
Prima dell'istruzione CREATE EVENT SESSION
, è possibile eseguire un'istruzione DROP EVENT SESSION
in modo condizionale, nel caso in cui esista già una sessione con lo stesso nome. In questo modo la sessione esistente viene eliminata. Senza questa funzionalità, il tentativo di creare una sessione con lo stesso nome causa un errore.
IF EXISTS (SELECT *
FROM sys.server_event_sessions
WHERE name = 'YourSession')
BEGIN
DROP EVENT SESSION YourSession
ON SERVER;
END
GO
Avviare e arrestare la sessione eventi usando T-SQL
Quando si crea una sessione eventi, il valore predefinito è l'avvio non automatico. È possibile avviare o arrestare la sessione eventi in qualsiasi momento usando l'istruzione T-SQL ALTER EVENT SESSION
seguente.
ALTER EVENT SESSION [YourSession]
ON SERVER
STATE = START; -- STOP;
È possibile configurare l'avvio automatico della sessione eventi all'avvio dell'istanza del motore di database. Vedere la parola chiave STARTUP STATE = ON
in CREATE EVENT SESSION
.
L'interfaccia utente di SSMS offre una casella di controllo corrispondente, Avvia la sessione eventi all'avvio del server, nella pagina Nuova sessione > Generale.
Testare una sessione eventi
Testare la sessione eventi con questi passaggi:
- In Esplora oggetti di SSMS, fare clic con il pulsante destro del mouse sul nodo della sessione, quindi selezionare Avvia sessione.
- Durante la connessione allo stesso server (o allo stesso database nel database SQL di Azure) in cui è stata creata la sessione eventi, eseguire l'istruzione
SELECT...HAVING
un paio di volte. È consigliabile modificare il valore nella clausolaHAVING
per ogni esecuzione, alternando tra 2 e 3. Ciò consente di visualizzare le differenze nei risultati. - Fare clic con il pulsante destro del mouse sul nodo della sessione, quindi selezionare Arresta sessione.
- Leggere la sottosezione successiva su come SELEZIONARE e visualizzare i risultati.
SELECT c.name,
COUNT(*) AS [Count-Per-Column-Repeated-Name]
FROM sys.syscolumns AS c
INNER JOIN sys.sysobjects AS o
ON o.id = c.id
WHERE o.type = 'V'
AND c.name LIKE '%event%'
GROUP BY c.name
HAVING Count(*) >= 3 --2 -- Try both values during session.
ORDER BY c.name;
Per completezza, di seguito è riportato l'output di esempio dal precedente SELECT...HAVING
.
/* Approximate output, 6 rows, all HAVING Count >= 3:
name Count-Per-Column-Repeated-Name
--------------------- ------------------------------
event_group_type 4
event_group_type_desc 4
event_session_address 5
event_session_id 5
is_trigger_event 4
trace_event_id 3
*/
Visualizzare i dati della sessione eventi come XML
In un intervallo di query in SSMS, eseguire l'istruzione SELECT
seguente per visualizzare i dati dell'evento acquisiti dalla sessione. Ogni riga costituisce un'occorrenza di evento. CAST(... AS xml)
modifica il tipo di dati della colonna da nvarchar a xml. In questo modo è possibile selezionare il valore della colonna per aprirlo in una nuova finestra e facilitarne la lettura.
Nota
La destinazione event_file
inserisce sempre una parte numerica nel nome del file xel
. Prima di poter eseguire la seguente query, è necessario copiare il nome completo effettivo del file xel
che include questa parte numerica e incollarlo nell'istruzione SELECT
. Nell'esempio seguente, la parte numerica è _0_131085363367310000
.
SELECT object_name,
file_name,
file_offset,
event_data,
'CLICK_NEXT_CELL_TO_BROWSE_XML RESULTS!' AS [CLICK_NEXT_CELL_TO_BROWSE_XML_RESULTS],
CAST(event_data AS XML) AS [event_data_XML]
-- TODO: In the SSMS results grid, click this XML cell
FROM sys.fn_xe_file_target_read_file(
'C:\Temp\YourSession_Target_0_131085363367310000.xel', NULL, NULL, NULL
);
Questa query fornisce due modi per visualizzare i risultati completi di una determinata riga di evento:
Eseguire l'istruzione SELECT in SSMS, quindi selezionare una cella della colonna
event_data_XML
.Copiare la stringa XML da una cella nella colonna
event_data
. Incollare in qualsiasi editor di testo come Blocco note di Windows e salvare il file con estensionexml
. Aprire quindi il file in un browser o in un editor in grado di visualizzare dati XML.
Dati dell'evento in XML
Ora verrà esaminata una parte dei risultati, che sono in formato XML. Il seguente XML viene modificato qui per brevità. <data name="row_count">
visualizza un valore di 6
, che corrisponde alle 6 righe di risultati visualizzate in precedenza. Inoltre, è visibile l'istruzione SELECT
completa.
<event name="sql_statement_completed" package="sqlserver" timestamp="2016-05-24T04:06:08.997Z">
<data name="duration">
<value>111021</value>
</data>
<data name="cpu_time">
<value>109000</value>
</data>
<data name="physical_reads">
<value>0</value>
</data>
<data name="last_row_count">
<value>6</value>
</data>
<data name="offset">
<value>0</value>
</data>
<data name="offset_end">
<value>584</value>
</data>
<data name="statement">
<value>SELECT c.name,
COUNT(*) AS [Count-Per-Column-Repeated-Name]
FROM sys.syscolumns AS c
INNER JOIN sys.sysobjects AS o
ON o.id = c.id
WHERE o.type = 'V'
AND c.name LIKE '%event%'
GROUP BY c.name
HAVING Count(*) >= 3 --2 -- Try both values during session.
ORDER BY c.name;</value>
</data>
</event>
Visualizzare i dati della sessione eventi in SSMS
Nell'interfaccia utente di SSMS sono disponibili numerose funzioni avanzate che è possibile usare per visualizzare i dati acquisiti da una sessione eventi. Per altre informazioni, vedere Visualizzare i dati degli eventi in SQL Server Management Studio.
Si inizia con le opzioni del menu contestuale etichettate Visualizza dati di destinazione e Controlla i dati dinamici.
Visualizza dati di destinazione
Nel Esplora oggetti SSMS è possibile fare clic con il pulsante destro del mouse sul nodo di destinazione nel nodo della sessione eventi, ad esempio package0.event_counter. Nel menu contestuale, selezionare Visualizza dati di destinazione. SSMS visualizza i dati.
La visualizzazione non viene aggiornata quando si verificano nuovi eventi in una sessione. Tuttavia, è possibile selezionare di nuovo Visualizza dati di destinazione .
Controlla i dati dinamici
In Esplora oggettidi SSMS è possibile fare clic con il pulsante destro del mouse sul nodo della sessione eventi. Nel menu contestuale, selezionare Controlla i dati dinamici. SSMS visualizza i dati in ingresso man mano che continuano ad arrivare in tempo reale.
Termini e concetti negli Eventi estesi
La tabella seguente elenca i termini usati per gli Eventi estesi e ne descrive i significati.
Termine | Descrizione |
---|---|
event session |
Un costrutto incentrato su uno o più eventi, oltre a elementi di supporto quali azioni e destinazioni. L'istruzione CREATE EVENT SESSION crea ognuna delle sessioni evento. È possibile ALTER una sessione evento in modo da avviarla e arrestarla in base alle proprie esigenze.Una sessione eventi viene a volte indicata semplicemente come sessione, quando il dal contesto si evince che indica la sessione eventi. Altre informazioni sulle sessioni eventi sono descritte in: Sessioni degli Eventi estesi. |
event |
Un'occorrenza specifica del sistema che viene controllata da una sessione eventi attiva. Ad esempio, l'evento sql_statement_completed rappresenta il momento in cui viene completata un'istruzione T-SQL. L'evento può segnalare la durata e altri dati. |
target |
Un elemento che riceve i dati di output da un evento acquisito. La destinazione visualizza i dati all'utente. Gli esempi includono la destinazione event_file usata in precedenza in questa guida introduttiva e la destinazione ring_buffer che mantiene gli eventi più recenti in memoria.Qualsiasi tipo di destinazione può essere usata per qualsiasi sessione eventi. Per informazioni dettagliate, vedere Destinazioni per gli Eventi estesi. |
action |
Un campo noto all'evento. I dati del campo vengono inviati alla destinazione. Il campo azione è strettamente correlato al filtro predicato. |
predicate o filtro |
Test di dati in un campo evento, usato in modo che solo un subset interessante di occorrenze dell'evento venga inviato alla destinazione. Ad esempio, un filtro può includere solo le occorrenze dell'evento sql_statement_completed in cui l'istruzione T-SQL conteneva la stringa HAVING . |
package |
Un qualificatore del nome associato a ogni elemento in un set di elementi incentrato su un core di eventi. Ad esempio, un pacchetto può avere eventi sul testo T-SQL, un evento potrebbe riguardare T-SQL in un batch. un evento più circoscritto potrebbe riguardare le singole istruzioni T-SQL. Inoltre, per qualsiasi istruzione T-SQL sono disponibili gli eventi started e completed .Anche i campi appropriati per gli eventi sono inclusi nel pacchetto con gli eventi. La maggior parte delle destinazioni si trova in package0 e viene usata con gli eventi di molti altri pacchetti. |
Scenari di Eventi estesi e dettagli di utilizzo
Esistono numerosi scenari per l'uso di Eventi estesi per monitorare e risolvere i problemi relativi al motore di database e ai carichi di lavoro di query. Gli articoli seguenti forniscono esempi che usano scenari correlati ai blocchi:
- Cercare gli oggetti con il maggior numero di blocchi acquisiti
- Questo scenario usa la destinazione histogram, che elabora i dati dell'evento non elaborati prima di farli visualizzare all'utente in forma riassunta (organizzata in bucket).
- Individuare le query che mantengono attivi i blocchi
- Questo scenario usa ladestinazione pair_matching, in cui la coppia di eventi è
sqlserver.lock_acquire
esqlserver.lock_release
.
- Questo scenario usa ladestinazione pair_matching, in cui la coppia di eventi è
Come individuare gli eventi disponibili nei pacchetti
La seguente query restituisce una riga per ogni evento disponibile, il cui nome contiene la stringa di tre caratteri sql
. È possibile modificare la clausola LIKE
per cercare nomi di eventi diversi. Inoltre, il set di risultati identifica il pacchetto che contiene l'evento.
SELECT -- Find an event you want.
p.name AS [Package-Name],
o.object_type,
o.name AS [Object-Name],
o.description AS [Object-Descr],
p.guid AS [Package-Guid]
FROM sys.dm_xe_packages AS p
INNER JOIN sys.dm_xe_objects AS o
ON p.guid = o.package_guid
WHERE o.object_type = 'event' --'action' --'target'
AND p.name LIKE '%'
AND o.name LIKE '%sql%'
ORDER BY p.name,
o.object_type,
o.name;
Nel seguente esempio di risultato viene illustrata la riga restituita, imperniata nel formato column name = value
. I dati provengono dall'evento sql_statement_completed
usato nei precedenti passaggi di esempio. La descrizione dell'oggetto (in questo esempio, un evento) funge da stringa di documentazione.
Package-Name = sqlserver
object_type = event
Object-Name = sql_statement_completed
Object-Descr = Occurs when a Transact-SQL statement has completed.
Package-Guid = 655FD93F-3364-40D5-B2BA-330F7FFB6491
Trovare eventi utilizzando l'interfaccia utente di SSMS
Un'altra opzione di ricerca per nome degli eventi consiste nell'usare la finestra di dialogo Nuova sessione > Eventi > Libreria di eventi visualizzata in una schermata precedente. È possibile digitare un nome di evento parziale e trovare tutti i nomi degli eventi corrispondenti.
Classi di evento Analisi SQL
Una descrizione dell'uso degli eventi estesi con le classi e le colonne di evento di Traccia SQL è disponibile all'indirizzo: Visualizzare gli eventi estesi equivalenti alle classi di eventi di Analisi SQL.
Event Tracing for Windows (ETW)
Le descrizioni dell'uso degli eventi estesi con Event Tracing for Windows (ETW) sono disponibili in:
- Destinazione di Event Tracing for Windows
- Monitorare l'attività del sistema mediante gli eventi estesi
Sessioni di evento di sistema
Per impostazione predefinita, in SQL Server e Istanza gestita di SQL di Azure vengono create diverse sessioni di eventi di sistema e configurate in modo da essere eseguite al momento dell'avvio del motore di database. Analogamente alla maggior parte delle sessioni di eventi, queste sessioni usano una piccola quantità di risorse e non influiscono materialmente sulle prestazioni del carico di lavoro. Microsoft consiglia che tali sessioni rimangano abilitate e in esecuzione. Le sessioni di integrità, in particolare lasessione system_health, sono spesso utili per il monitoraggio e la risoluzione dei problemi.
È possibile visualizzare le sessioni eventi in Esplora oggetti di SSMS in Gestione>Eventi estesi > Sessioni. Ad esempio, in SQL Server queste sessioni di eventi di sistema sono:
AlwaysOn_health
system_health
telemetry_events
Provider PowerShell
È possibile gestire gli Eventi estesi usando il provider SQL Server PowerShell. Per altre informazioni, vedere Utilizzare il provider PowerShell per eventi estesi.
Visualizzazioni di sistema
Le viste di sistema per gli Eventi estesi includono:
- Viste del catalogo: per informazioni sulle sessioni eventi definite da
CREATE EVENT SESSION
. - DMV: per informazioni sulle sessioni eventi attive (avviate).
Le Istruzioni SELECT e JOIN da viste di sistema per Eventi estesi in SQL Server forniscono informazioni su:
- Come unire le viste
- Diverse query utili basate su queste viste
- La correlazione tra:
- Visualizza colonne
- Clausole
CREATE EVENT SESSION
- Interfaccia utente di SSMS
Appendice: Query per trovare i titolari di autorizzazioni degli Eventi estesi
Le autorizzazioni indicate in questo articolo sono:
ALTER ANY EVENT SESSION
VIEW SERVER STATE
CONTROL SERVER
L'istruzione SELECT...UNION ALL
seguente restituisce le righe che mostrano chi ha le autorizzazioni necessarie per la creazione di sessioni eventi e l'esecuzione di query nelle viste del catalogo di sistema per gli Eventi estesi.
-- Ascertain who has the permissions listed in the ON clause.
-- 'CONTROL SERVER' permission includes all lower permissions like
-- 'ALTER ANY EVENT SESSION' and 'VIEW SERVER STATE'.
SELECT 'Owner-is-Principal' AS [Type-That-Owns-Permission],
NULL AS [Role-Name],
prin.name AS [Owner-Name],
PERM.permission_name COLLATE Latin1_General_CI_AS_KS_WS AS [Permission-Name]
FROM sys.server_permissions AS PERM
INNER JOIN sys.server_principals AS prin
ON prin.principal_id = PERM.grantee_principal_id
WHERE PERM.permission_name IN (
'CREATE ANY EVENT SESSION',
'ALTER ANY EVENT SESSION',
'VIEW SERVER PERFORMANCE STATE',
'VIEW SERVER STATE',
'CONTROL SERVER'
)
UNION ALL
-- Plus check for members of the 'sysadmin' fixed server role,
-- because 'sysadmin' includes the 'CONTROL SERVER' permission.
SELECT 'Owner-is-Role',
prin.name, -- [Role-Name]
CAST((IsNull(pri2.name, N'No members')) AS NVARCHAR(128)),
NULL
FROM sys.server_role_members AS rolm
RIGHT JOIN sys.server_principals AS prin
ON prin.principal_id = rolm.role_principal_id
LEFT JOIN sys.server_principals AS pri2
ON rolm.member_principal_id = pri2.principal_id
WHERE prin.name = 'sysadmin';
HAS_PERMS_BY_NAME - funzione
L'istruzione SELECT
seguente segnala le autorizzazioni. Si basa sulla funzione predefinita HAS_PERMS_BY_NAME.
Inoltre, se si dispone dell'autorità per rappresentare temporaneamente altri account di accesso, è possibile rimuovere il commento dalle istruzioni EXECUTE AS e REVERT
per verificare se altri account di accesso dispongono dell'autorizzazioneALTER ANY EVENT SESSION
.
--EXECUTE AS LOGIN = 'LoginNameHere';
SELECT HAS_PERMS_BY_NAME(NULL, NULL, 'ALTER ANY EVENT SESSION');
--REVERT;