Dynamic management views and functions return server
state information that can be used to monitor the health of a server instance,
diagnose problems, and tune performance.
Dynamic management views and functions return internal,
implementation-specific state data. Their schemes and the data they
return may change in future releases of SQL Server. Therefore, dynamic
management views and functions in future releases may not be compatible with
the dynamic management views and functions in this release.
For example, in future releases of SQL Server,
Microsoft may augment the definition of any dynamic management view by adding
columns to the end of the column list.
We recommend against using the syntax
SELECT *
FROM dynamic_management_view_name in production code because the number of columns returned might
change and break your application.
There are two types of dynamic management views and
functions:
- Server-scoped dynamic management views and functions. These require VIEW SERVER STATE permission on the server.
- Database-scoped dynamic management views and functions. These require VIEW DATABASE STATE permission on the database.
Querying Dynamic Management Views
Dynamic management views can be referenced in
Transact-SQL statements by using two-part, three-part, or four-part names.
Dynamic management functions on the other hand can be referenced in
Transact-SQL statements by using either two-part or three-part names. Dynamic
management views and functions cannot be referenced in Transact-SQL statements
by using one-part names.
All dynamic management views and functions exist in the
sys schema and follow this naming convention dm_*. When you use a dynamic
management view or function, you must prefix the name of the view or function
by using the sys schema.
For example, to query the dm_os_wait_stats dynamic
management view, run the following query:
SELECT wait_type, wait_time_ms
FROM sys.dm_os_wait_stats;
GO
Required Permissions
To query a dynamic management view or function
requires SELECT permission on object and VIEW SERVER STATE or VIEW DATABASE
STATE permission. This lets you selectively restrict access of a user or login
to dynamic management views and functions.
To do this, first create the user in
master and then deny the user SELECT permission on the dynamic management views
or functions that you do not want them to access. After this, the user cannot
select from these dynamic management views or functions, regardless of database
context of the user.
Note:Because
DENY takes precedence, if a user has been granted VIEW SERVER STATE permissions
but denied VIEW DATABASE STATE permission, the user can see server-level
information, but not database-level information.
No comments:
Post a Comment