Skip to content

Commit 9fe1f40

Browse files
Merge pull request #36736 from MicrosoftDocs/main
Auto Publish – main to live - 2026-02-27 23:30 UTC
2 parents 2841631 + a9140ba commit 9fe1f40

13 files changed

Lines changed: 796 additions & 785 deletions

docs/database-engine/availability-groups/windows/enable-and-disable-always-on-availability-groups-sql-server.md

Lines changed: 212 additions & 223 deletions
Large diffs are not rendered by default.

docs/relational-databases/security/permissions-hierarchy-database-engine.md

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: "Permissions Hierarchy (Database Engine)"
33
description: Learn about the hierarchy of entities that can be secured with permissions, known as securables, in SQL Server Database Engine.
44
author: VanMSFT
55
ms.author: vanto
6-
ms.date: "03/23/2016"
6+
ms.date: 02/27/2026
77
ms.service: sql
88
ms.subservice: security
99
ms.topic: concept-article
@@ -24,33 +24,34 @@ monikerRange: ">=aps-pdw-2016 || =azuresqldb-current || =azure-sqldw-latest || >
2424
# Permissions Hierarchy (Database Engine)
2525
[!INCLUDE [SQL Server Azure SQL Database Synapse Analytics PDW FabricSQLDB](../../includes/applies-to-version/sql-asdb-asdbmi-asa-pdw-fabricsqldb.md)]
2626

27-
The [!INCLUDE[ssDE](../../includes/ssde-md.md)] manages a hierarchical collection of entities that can be secured with permissions. These entities are known as *securables*. The most prominent securables are servers and databases, but discrete permissions can be set at a much finer level. [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] regulates the actions of principals on securables by verifying that they have been granted appropriate permissions.
28-
29-
The following illustration shows the relationships among the [!INCLUDE[ssDE](../../includes/ssde-md.md)] permissions hierarchies.
30-
31-
The permissions system works the same in all versions of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)], [!INCLUDE[ssSDS](../../includes/sssds-md.md)], [!INCLUDE [fabric-sqldb](../../includes/fabric-sqldb.md)], [!INCLUDE[ssazuresynapse-md](../../includes/ssazuresynapse-md.md)], [!INCLUDE[ssAPS](../../includes/ssaps-md.md)], however some features are not available in all versions. For example, server-level permission cannot be configured in Azure products.
32-
33-
![Diagram of Database Engine permissions hierarchies](../../relational-databases/security/media/wj-security-layers.gif "Diagram of Database Engine permissions hierarchies")
34-
35-
## Chart of SQL Server Permissions
36-
For a poster sized chart of all [!INCLUDE [ssDE](../../includes/ssde-md.md)] permissions in PDF format, see <https://aka.ms/sql-permissions-poster>.
37-
38-
## Working with Permissions
39-
Permissions can be manipulated with the familiar [!INCLUDE[tsql](../../includes/tsql-md.md)] queries GRANT, DENY, and REVOKE. Information about permissions is visible in the [sys.server_permissions](../../relational-databases/system-catalog-views/sys-server-permissions-transact-sql.md) and [sys.database_permissions](../../relational-databases/system-catalog-views/sys-database-permissions-transact-sql.md) catalog views. There is also support for querying permissions information by using built-in functions.
40-
41-
For information about designing a permissions system, see [Getting Started with Database Engine Permissions](../../relational-databases/security/authentication-access/getting-started-with-database-engine-permissions.md).
42-
43-
## See Also
44-
[Securing SQL Server](../../relational-databases/security/securing-sql-server.md)
45-
[Permissions &#40;Database Engine&#41;](../../relational-databases/security/permissions-database-engine.md)
46-
[Securables](../../relational-databases/security/securables.md)
47-
[Principals &#40;Database Engine&#41;](../../relational-databases/security/authentication-access/principals-database-engine.md)
48-
[GRANT &#40;Transact-SQL&#41;](../../t-sql/statements/grant-transact-sql.md)
49-
[REVOKE &#40;Transact-SQL&#41;](../../t-sql/statements/revoke-transact-sql.md)
50-
[DENY &#40;Transact-SQL&#41;](../../t-sql/statements/deny-transact-sql.md)
51-
[HAS_PERMS_BY_NAME &#40;Transact-SQL&#41;](../../t-sql/functions/has-perms-by-name-transact-sql.md)
52-
[sys.fn_builtin_permissions &#40;Transact-SQL&#41;](../../relational-databases/system-functions/sys-fn-builtin-permissions-transact-sql.md)
53-
[sys.server_permissions &#40;Transact-SQL&#41;](../../relational-databases/system-catalog-views/sys-server-permissions-transact-sql.md)
54-
[sys.database_permissions &#40;Transact-SQL&#41;](../../relational-databases/system-catalog-views/sys-database-permissions-transact-sql.md)
27+
The [!INCLUDE[ssDE](../../includes/ssde-md.md)] manages a hierarchical collection of entities that can be secured with permissions. These entities are known as *securables*. The most prominent securables are servers and databases, but discrete permissions can be set at a much finer level. [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] regulates the actions of principals on securables by verifying that they've been granted appropriate permissions.
28+
29+
The following illustration shows the relationships among the [!INCLUDE[ssDE](../../includes/ssde-md.md)] permissions hierarchies.
30+
31+
The permissions system works the same in all versions of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)], [!INCLUDE[ssSDS](../../includes/sssds-md.md)], [!INCLUDE [fabric-sqldb](../../includes/fabric-sqldb.md)], [!INCLUDE[ssazuresynapse-md](../../includes/ssazuresynapse-md.md)], [!INCLUDE[ssAPS](../../includes/ssaps-md.md)], however some features aren't available in all versions. For example, server-level permission can't be configured in Azure products.
32+
33+
![Diagram of Database Engine permissions hierarchies](../../relational-databases/security/media/wj-security-layers.gif "Diagram of Database Engine permissions hierarchies")
5534

35+
## Chart of SQL Server permissions
36+
37+
For a poster sized chart of all [!INCLUDE [ssDE](../../includes/ssde-md.md)] permissions in PDF format, see <https://aka.ms/sql-permissions-poster>.
38+
39+
## Working with permissions
40+
41+
You can manipulate permissions with the familiar [!INCLUDE[tsql](../../includes/tsql-md.md)] queries GRANT, DENY, and REVOKE. Information about permissions is visible in the [sys.server_permissions](../../relational-databases/system-catalog-views/sys-server-permissions-transact-sql.md) and [sys.database_permissions](../../relational-databases/system-catalog-views/sys-database-permissions-transact-sql.md) catalog views. There's also support for querying permissions information by using built-in functions.
42+
43+
For information about designing a permissions system, see [Getting Started with Database Engine Permissions](../../relational-databases/security/authentication-access/getting-started-with-database-engine-permissions.md).
5644

45+
## Related content
46+
47+
- [Securing SQL Server](../../relational-databases/security/securing-sql-server.md)
48+
- [Permissions (Database Engine)](../../relational-databases/security/permissions-database-engine.md)
49+
- [Securables](../../relational-databases/security/securables.md)
50+
- [Principals (Database Engine)](../../relational-databases/security/authentication-access/principals-database-engine.md)
51+
- [GRANT (Transact-SQL)](../../t-sql/statements/grant-transact-sql.md)
52+
- [REVOKE (Transact-SQL)](../../t-sql/statements/revoke-transact-sql.md)
53+
- [DENY (Transact-SQL)](../../t-sql/statements/deny-transact-sql.md)
54+
- [HAS_PERMS_BY_NAME (Transact-SQL)](../../t-sql/functions/has-perms-by-name-transact-sql.md)
55+
- [sys.fn_builtin_permissions (Transact-SQL)](../../relational-databases/system-functions/sys-fn-builtin-permissions-transact-sql.md)
56+
- [sys.server_permissions (Transact-SQL)](../../relational-databases/system-catalog-views/sys-server-permissions-transact-sql.md)
57+
- [sys.database_permissions (Transact-SQL)](../../relational-databases/system-catalog-views/sys-database-permissions-transact-sql.md)

docs/relational-databases/security/protecting-your-sql-server-intellectual-property.md

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,35 @@ title: "Protecting Your SQL Server Intellectual Property"
33
description: Understand your options for protecting the intellectual property in a SQL Server data application that is distributed to customers.
44
author: VanMSFT
55
ms.author: vanto
6-
ms.date: "01/31/2017"
6+
ms.date: 02/27/2026
77
ms.service: sql
88
ms.subservice: security
99
ms.topic: concept-article
1010
helpviewer_keywords:
1111
- "protecting intellectual property"
1212
- "intellectual property"
1313
---
14-
# Protecting Your SQL Server Intellectual Property
15-
[!INCLUDE [SQL Server](../../includes/applies-to-version/sqlserver.md)]
14+
# Protecting your SQL Server intellectual property
1615

17-
Software developers often ask how to distribute their [!INCLUDE[ssNoVersion_md](../../includes/ssnoversion-md.md)] data application to customers, and yet prevent customers from analyzing and deconstructing their application. The key principal here, is that protecting your intellectual property, is a legal issue, and the protection rests in your license agreement. When [!INCLUDE[ssNoVersion_md](../../includes/ssnoversion-md.md)] is installed on a computer that others administer, you inherently lose some aspects of control.
16+
[!INCLUDE [SQL Server](../../includes/applies-to-version/sqlserver.md)]
1817

19-
## Nature of the Problem
20-
The owner/administrator of a computer can always access the instance of [!INCLUDE[ssNoVersion_md](../../includes/ssnoversion-md.md)] that is installed on that computer. If you deploy your application to a customer's computer, since they are administrators, they can connect to the [!INCLUDE[ssNoVersion_md](../../includes/ssnoversion-md.md)] as members of the **sysadmin** fixed server role. This includes the ability to grant permissions, manage backups (including restoring backups to other computers), decrypt and move data files, etc. For more information, see [Connect to SQL Server When System Administrators Are Locked Out](../../database-engine/configure-windows/connect-to-sql-server-when-system-administrators-are-locked-out.md).
18+
Software developers often ask how to distribute their [!INCLUDE[ssNoVersion_md](../../includes/ssnoversion-md.md)] data application to customers while preventing customers from analyzing and deconstructing their application. The key principle here is that protecting your intellectual property is a legal issue, and the protection rests in your license agreement. When [!INCLUDE[ssNoVersion_md](../../includes/ssnoversion-md.md)] is installed on a computer that others administer, you inherently lose some aspects of control.
2119

22-
Stored procedures and data can be encrypted, but the data structure cannot be hidden and users who can attach a debugger to the server process can retrieve decrypted procedures and data from memory at runtime.
20+
## Nature of the problem
2321

24-
If the clients are not administrators on the computers, you can prevent access by the clients. You can use [Transparent Data Encryption](../../relational-databases/security/encryption/transparent-data-encryption.md) to encrypt the data files, you can encrypt backups, and you can audit the actions of all users. But [!INCLUDE[ssNoVersion_md](../../includes/ssnoversion-md.md)] administrators and admins of the [!INCLUDE[ssNoVersion_md](../../includes/ssnoversion-md.md)] computer can reverse these actions.
22+
The owner or administrator of a computer can always access the instance of [!INCLUDE[ssNoVersion_md](../../includes/ssnoversion-md.md)] that is installed on that computer. If you deploy your application to a customer's computer, since they're administrators, they can connect to the [!INCLUDE[ssNoVersion_md](../../includes/ssnoversion-md.md)] as members of the **sysadmin** fixed server role. This includes the ability to grant permissions, manage backups (including restoring backups to other computers), decrypt and move data files, and more. For more information, see [Connect to SQL Server When System Administrators Are Locked Out](../../database-engine/configure-windows/connect-to-sql-server-when-system-administrators-are-locked-out.md).
23+
24+
Stored procedures and data can be encrypted, but the data structure can't be hidden, and users who can attach a debugger to the server process can retrieve decrypted procedures and data from memory at runtime.
25+
26+
If the clients aren't administrators on the computers, you can prevent access by the clients. You can use [Transparent Data Encryption](../../relational-databases/security/encryption/transparent-data-encryption.md) to encrypt the data files, you can encrypt backups, and you can audit the actions of all users. But [!INCLUDE[ssNoVersion_md](../../includes/ssnoversion-md.md)] administrators and admins of the [!INCLUDE[ssNoVersion_md](../../includes/ssnoversion-md.md)] computer can reverse these actions.
2527

2628
## Solution
27-
There are various ways to configure client data access without installing [!INCLUDE[ssNoVersion_md](../../includes/ssnoversion-md.md)] on your clients computer. The easiest is probably using [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)] so the clients are not admins, perhaps in combination with [Always Encrypted](../../relational-databases/security/encryption/always-encrypted-database-engine.md). For more information about getting started with [!INCLUDE[ssSDS_md](../../includes/sssds-md.md)], see [What is SQL Database? Introduction to SQL Database](/azure/sql-database/sql-database-technical-overview).
29+
30+
There are various ways to configure client data access without installing [!INCLUDE[ssNoVersion_md](../../includes/ssnoversion-md.md)] on your client's computer. The easiest is probably using [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)] so the clients aren't admins, perhaps in combination with [Always Encrypted](../../relational-databases/security/encryption/always-encrypted-database-engine.md). For more information about getting started with [!INCLUDE[ssSDS_md](../../includes/sssds-md.md)], see [What is Azure SQL Database?](/azure/azure-sql/database/sql-database-paas-overview).
2831

2932
You can also host a [!INCLUDE[ssNoVersion_md](../../includes/ssnoversion-md.md)] on your own network, and allow clients to access data through your network, either directly or through a web application.
3033

31-
## See Also
34+
## Related content
3235

33-
[Security Center for SQL Server Database Engine and Azure SQL Database](../../relational-databases/security/security-center-for-sql-server-database-engine-and-azure-sql-database.md)
34-
[Securing SQL Server](../../relational-databases/security/securing-sql-server.md)
36+
- [Security Center for SQL Server Database Engine and Azure SQL Database](../../relational-databases/security/security-center-for-sql-server-database-engine-and-azure-sql-database.md)
37+
- [Securing SQL Server](../../relational-databases/security/securing-sql-server.md)

docs/relational-databases/security/sql-data-discovery-and-classification.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: SQL Data Discovery & Classification
44
author: Madhumitatripathy
55
ms.author: matripathy
66
ms.reviewer: vanto
7-
ms.date: 03/09/2022
7+
ms.date: 02/27/2026
88
ms.service: sql
99
ms.topic: how-to
1010
ms.custom:
@@ -20,7 +20,7 @@ Discovering and classifying your most sensitive data (business, financial, healt
2020
* Monitoring access to databases/columns containing highly sensitive data.
2121

2222
> [!NOTE]
23-
> Data Discovery & Classification is **supported for SQL Server 2012 and later, and can be used with [SSMS 17.5](/ssms/sql-server-management-studio-ssms) or later**. For Azure SQL Database, see [Azure SQL Database Data Discovery & Classification](/azure/sql-database/sql-database-data-discovery-and-classification/).
23+
> Data Discovery & Classification is **supported for SQL Server 2012 and later, and can be used with [SSMS 17.5](/ssms/sql-server-management-studio-ssms) or later**. For Azure SQL Database, see [Azure SQL Database Data Discovery & Classification](/azure/azure-sql/database/data-discovery-and-classification-overview).
2424
2525
## <a id="Overview"></a>Overview
2626
Data Discovery & Classification forms a new information-protection paradigm for SQL Database, SQL Managed Instance, and Azure Synapse, aimed at protecting the data and not just the database. Currently it supports the following capabilities:
@@ -138,7 +138,7 @@ To reset the Information Protection Policy to default or SQL Information Protect
138138
To enable Information Protection Policy from a custom JSON file, go to the SSMS **Object Explorer**, right-click on the database and choose **Tasks** > **Data Discovery and Classification** > **Set Information Protection Policy File**.
139139

140140
> [!NOTE]
141-
> A warning icon indicates that the column was previously classified using a different Information Protection Policy than the currently selected policy mode. For example, if you are currently in the Microsoft Information Protection mode, and one of the columns was previously classified using SQL Information Protection Policy or Information Protection Policy from a custom policy file, you will see a warning icon against that column. You can decide whether you want to change the classification of the column to any of the sensitivity labels available in current policy mode or leave it as it is.
141+
> A warning icon indicates that the column was previously classified using a different Information Protection Policy than the currently selected policy mode. For example, if you're currently in the Microsoft Information Protection mode, and one of the columns was previously classified using SQL Information Protection Policy or Information Protection Policy from a custom policy file, you'll see a warning icon against that column. You can decide whether you want to change the classification of the column to any of the sensitivity labels available in current policy mode or leave it as it is.
142142
> :::image type="content" source="media/sql-data-discovery-and-classification/data-classification-warning-icon.png" alt-text="Screenshot of Data Classification warning of mismatched policies":::
143143
144144

@@ -161,8 +161,8 @@ You can manage the Information Protection Policy using the latest version of [SQ
161161
* **Reset Information Protection Policy**: resets the Information Protection Policy to the default SQL Information Protection Policy.
162162

163163
> [!IMPORTANT]
164-
> Information protection policy file is not stored in the SQL Server.
165-
> SSMS uses a default Information Protection Policy. If an Information Protection Policy customized fails, SSMS cannot use the default policy. Data classification fails. To resolve, click **Reset Information Protection Policy** to use the default policy and re-enable data classification.
164+
> Information protection policy file isn't stored in the SQL Server.
165+
> SSMS uses a default Information Protection Policy. If an Information Protection Policy customized fails, SSMS can't use the default policy. Data classification fails. To resolve, click **Reset Information Protection Policy** to use the default policy and re-enable data classification.
166166
167167
## <a id="sAccessing-the-classification-metadata"></a>Accessing the classification metadata
168168

docs/relational-databases/security/surface-area-configuration.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn how to change feature defaults for SQL Server installation an
44
author: VanMSFT
55
ms.author: vanto
66
ms.reviewer: randolphwest
7-
ms.date: 05/26/2023
7+
ms.date: 02/27/2026
88
ms.service: sql
99
ms.subservice: security
1010
ms.topic: how-to
@@ -20,7 +20,7 @@ helpviewer_keywords:
2020

2121
[!INCLUDE [SQL Server](../../includes/applies-to-version/sqlserver.md)]
2222

23-
In the default configuration of new installations of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)], many features are not enabled. [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] selectively installs and starts only key services and features, to minimize the number of features that can be attacked by a malicious user. A system administrator can change these defaults at installation time and also selectively enable or disable features of a running instance of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)]. Additionally, some components may not be available when connecting from other computers until protocols are configured.
23+
In the default configuration of new installations of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)], many features aren't enabled. [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] selectively installs and starts only key services and features, to minimize the number of features that can be attacked by a malicious user. A system administrator can change these defaults at installation time and also selectively enable or disable features of a running instance of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)]. Additionally, some components might not be available when connecting from other computers until protocols are configured.
2424

2525
> [!NOTE]
2626
> Unlike new installations, no existing services or features are turned off during an upgrade, but additional surface area configuration options can be applied after the upgrade is completed.

0 commit comments

Comments
 (0)