Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Applies to:
SQL Server
Azure SQL Managed Instance
By default, running SQL Server Profiler requires the same user permissions as the Transact-SQL stored procedures that are used to create traces. To run SQL Server Profiler, users must be granted the ALTER TRACE
permission. For more information, see GRANT Server Permissions.
Note
SQL Trace and SQL Server Profiler are deprecated. The Microsoft.SqlServer.Management.Trace
namespace that contains the Microsoft SQL Server Trace and Replay objects is also deprecated.
This feature will be removed in a future version of SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.
Use Extended Events instead. For more information on Extended Events overview, see Quickstart: Extended Events and Use the SSMS XEvent Profiler.
Remarks
Query plans and query text, captured by SQL Trace as well as by other means, for example, dynamic management views (DMVs), dynamic management functions (DMFs), and Extended Events, can contain sensitive information. Therefore, the permissions
ALTER TRACE
,SHOWPLAN
, and the covering permissionVIEW SERVER STATE
should be granted to only users who need these permissions to fulfill their job functions, based on the principle of least privilege.Additionally, we recommend that you only save Showplan files or trace files that contain Showplan-related events to a ___location that uses the NTFS file system and restrict access to users who are authorized to view potentially sensitive information.
SQL Server Profiler for Analysis Services workloads are supported.
When you try to connect to an Azure SQL Database from SQL Server Profiler, it incorrectly throws a misleading error message:
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.
The message should state that Azure SQL Database isn't supported by SQL Server Profiler.
Permissions used to replay traces
Replaying traces also requires that the user who is replaying the trace have the ALTER TRACE
permission.
However, during replay, SQL Server Profiler uses the EXECUTE AS
command if an Audit Login event is encountered in the trace that is being replayed. SQL Server Profiler uses the EXECUTE AS
command to impersonate the user who is associated with the login event.
If SQL Server Profiler encounters a login event in a trace that is being replayed, the following permission checks are performed:
User1
, who has theALTER TRACE
permission, starts replaying a trace.A login event for
User2
is encountered in the replayed trace.SQL Server Profiler uses the
EXECUTE AS
command to impersonateUser2
.SQL Server attempts to authenticate
User2
, and depending on the results, one of the following occurs:If
User2
can't be authenticated, SQL Server Profiler returns an error, and continues replaying the trace asUser1
.If
User2
is successfully authenticated, replaying the trace asUser2
continues.
Permissions for
User2
are checked on the target database, and depending on the results, one of the following scenarios occurs:If
User2
has permissions on the target database, impersonation has succeeded, and the trace is replayed asUser2
.If
User2
doesn't have permissions on the target database, the server checks for aGuest
user on that database.
Existence of a
Guest
user is checked on the target database, and depending on the results, one of the following occurs:If a
Guest
account exists, the trace is replayed as theGuest
account.If no
Guest
account exists on the target database, an error is returned and the trace is replayed asUser1
.
The following diagram shows this process of checking permission when replaying traces: