New granular permissions - SQL Server 2022

SQL Server 2022 introduces new granular permissions that provide more fine-grained control over database objects and actions. It improved the existing set of permissions, by making them more granular. This has happened in 3 distinguishable areas:
  1. Access to System Metadata: 10 new permissions (5 on Server- and 5 on Database level)
  2. Extended Events: 18 new permissions (9 on Server- and 9 on Database level)
  3. Security-related objects: 4 new permissions (3 on Server- and 1 on Database level)

Access to System Metadata:

The new "ACCESS ANY SYSTEM METADATA" permission allows a user to view any system metadata, including system tables, views, and functions. This permission can be granted at the server or database level, and it provides a more fine-grained control over who can access system metadata.

There is a split in existing permissions into two separate sub-permissions below VIEW SERVER STATE/VIEW DATABASE STATE respectively VIEW ANY DEFINITION/VIEW DEFINITION.

The diagram below depicts this change/additional granularity:

Diagram: Split of VIEW SERVER/DATABASE STATE into VIEW SERVER/DATABASE PERFORMANCE STATE and VIEW SERVER/DATABASE SECURITY STATE


Diagram: Split of VIEW DEFINITION/ANY DEFINITION into VIEW ANY SECURITY DEFINITION and SECURITY DEFINITION as well as a new permission VIEW CRYPTOGRAPHICALLY SECURED DEFINITION/ANY CRYPTOGRAPHICALLY SECURED DEFINITION

There are 10 new permissions introduced (5 on server plus 5 on database level):

Server level:

  • VIEW ANY SECURITY DEFINITION
  • VIEW ANY PERFORMANCE DEFINITION
  • VIEW SERVER SECURITY STATE
  • VIEW SERVER PERFORMANCE STATE
  • VIEW ANY CRYPTOGRAPHICALLY SECURED DEFINITION

Database level:

  • VIEW DATABASE SECURITY STATE
  • VIEW DATABASE PERFORMANCE STATE
  • VIEW SECURITY DEFINITION
  • VIEW PERFORMANCE DEFINITION
  • VIEW CRYPTOGRAPHICALLY SECURED DEFINITION

Extended Events:

The "ALTER ANY EVENT SESSION" permission allows a user to modify any extended event session in the database. Extended events are used to collect diagnostic information about SQL Server instances, and this permission can be useful for troubleshooting purposes. This permission can also be granted at the server or database level.

Starting with SQL Server 2022, XEvent session management can be controlled by 18 additional permissions (9 on server plus 9 on database level). This allows for a much more fine-grained control over what a user is allowed to do with XEvent sessions.

The list of new permissions:

Server level:

  • CREATE ANY EVENT SESSION
  • DROP ANY EVENT SESSION
  • ALTER ANY EVENT SESSION OPTION
  • ALTER ANY EVENT SESSION ADD EVENT
  • ALTER ANY EVENT SESSION DROP EVENT
  • ALTER ANY EVENT SESSION ENABLE
  • ALTER ANY EVENT SESSION DISABLE
  • ALTER ANY EVENT SESSION ADD TARGET
  • ALTER ANY EVENT SESSION DROP TARGET

All these permissions are under the same parent-permission: ALTER ANY EVENT SESSION

Database level:

  • CREATE ANY DATABASE EVENT SESSION
  • DROP ANY DATABASE EVENT SESSION
  • ALTER ANY DATABASE EVENT SESSION OPTION
  • ALTER ANY DATABASE EVENT SESSION ADD EVENT
  • ALTER ANY DATABASE EVENT SESSION DROP EVENT
  • ALTER ANY DATABASE EVENT SESSION ENABLE
  • ALTER ANY DATABASE EVENT SESSION DISABLE
  • ALTER ANY DATABASE EVENT SESSION ADD TARGET
  • ALTER ANY DATABASE EVENT SESSION DROP TARGET

All these permissions are under the same parent-permission: ALTER ANY DATABASE EVENT SESSION

Security-related Objects:

4 new permissions (3 on Server- and 1 on Database level). Here are the 4 new permissions:

  • CREATE LOGIN
  • VIEW ANY ERROR LOG
  • VIEW SERVER SECURITY AUDIT
  • VIEW DATABASE SECURITY AUDIT

Comments

Popular posts from this blog

COPILOT Feature in SQL Server 2025

Prefetching - SQL Server

Split Brain - SQL Server