Lokasi ngalangkungan proxy:   [ UP ]  
[Ngawartoskeun bug]   [Panyetelan cookie]                
Skip to content

Commit f861e60

Browse files
authored
Merge pull request #29963 from MicrosoftDocs/rw-0228-pre-ssms
Refresh in advance of SSMS release
2 parents 18f034b + 1ac3d8e commit f861e60

11 files changed

Lines changed: 287 additions & 240 deletions

docs/relational-databases/errors-events/includes/sql-server-2016-database-engine-events-and-errors-10000-10999.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ ms.topic: include
3333
| 10042 | 16 | No | Cannot set any properties while there is an open rowset. |
3434
| 10052 | 16 | No | The insertion was canceled by the provider during notification. |
3535
| 10053 | 16 | No | Could not convert the data value due to reasons other than sign mismatch or overflow. |
36-
| 10054 | 16 | No | The data value for one or more columns overflowed the type used by the provider. |
36+
| [10054](../mssqlserver-10054-database-engine-error.md) | 16 | No | The data value for one or more columns overflowed the type used by the provider. |
3737
| 10055 | 16 | No | The data violated the integrity constraints for one or more columns. |
3838
| 10056 | 16 | No | The number of rows that have pending changes has exceeded the limit specified by the DBPROP_MAXPENDINGROWS property. |
3939
| 10057 | 16 | No | Cannot create the row. Would exceed the total number of active rows supported by the rowset. |

docs/relational-databases/errors-events/includes/sql-server-2017-database-engine-events-and-errors-10000-10999.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ ms.topic: include
3333
| 10042 | 16 | No | Cannot set any properties while there is an open rowset. |
3434
| 10052 | 16 | No | The insertion was canceled by the provider during notification. |
3535
| 10053 | 16 | No | Could not convert the data value due to reasons other than sign mismatch or overflow. |
36-
| 10054 | 16 | No | The data value for one or more columns overflowed the type used by the provider. |
36+
| [10054](../mssqlserver-10054-database-engine-error.md) | 16 | No | The data value for one or more columns overflowed the type used by the provider. |
3737
| 10055 | 16 | No | The data violated the integrity constraints for one or more columns. |
3838
| 10056 | 16 | No | The number of rows that have pending changes has exceeded the limit specified by the DBPROP_MAXPENDINGROWS property. |
3939
| 10057 | 16 | No | Cannot create the row. Would exceed the total number of active rows supported by the rowset. |

docs/relational-databases/errors-events/includes/sql-server-2019-database-engine-events-and-errors-10000-10999.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ ms.topic: include
3333
| 10042 | 16 | No | Cannot set any properties while there is an open rowset. |
3434
| 10052 | 16 | No | The insertion was canceled by the provider during notification. |
3535
| 10053 | 16 | No | Could not convert the data value due to reasons other than sign mismatch or overflow. |
36-
| 10054 | 16 | No | The data value for one or more columns overflowed the type used by the provider. |
36+
| [10054](../mssqlserver-10054-database-engine-error.md) | 16 | No | The data value for one or more columns overflowed the type used by the provider. |
3737
| 10055 | 16 | No | The data violated the integrity constraints for one or more columns. |
3838
| 10056 | 16 | No | The number of rows that have pending changes has exceeded the limit specified by the DBPROP_MAXPENDINGROWS property. |
3939
| 10057 | 16 | No | Cannot create the row. Would exceed the total number of active rows supported by the rowset. |

docs/relational-databases/errors-events/includes/sql-server-2022-database-engine-events-and-errors-10000-10999.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ ms.topic: include
3333
| 10042 | 16 | No | Cannot set any properties while there is an open rowset. |
3434
| 10052 | 16 | No | The insertion was canceled by the provider during notification. |
3535
| 10053 | 16 | No | Could not convert the data value due to reasons other than sign mismatch or overflow. |
36-
| 10054 | 16 | No | The data value for one or more columns overflowed the type used by the provider. |
36+
| [10054](../mssqlserver-10054-database-engine-error.md) | 16 | No | The data value for one or more columns overflowed the type used by the provider. |
3737
| 10055 | 16 | No | The data violated the integrity constraints for one or more columns. |
3838
| 10056 | 16 | No | The number of rows that have pending changes has exceeded the limit specified by the DBPROP_MAXPENDINGROWS property. |
3939
| 10057 | 16 | No | Cannot create the row. Would exceed the total number of active rows supported by the rowset. |
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
title: MSSQLSERVER_10054
3+
description: "MSSQLSERVER_10054"
4+
author: erinstellato-ms
5+
ms.author: erinstellato
6+
ms.reviewer: maghan, randolphwest
7+
ms.date: 02/29/2024
8+
ms.service: sql
9+
ms.subservice: supportability
10+
ms.topic: "reference"
11+
helpviewer_keywords:
12+
- "10054 (Database Engine error)"
13+
---
14+
# MSSQLSERVER_10054
15+
16+
[!INCLUDE [SQL Server](../../includes/applies-to-version/sqlserver.md)]
17+
18+
## Details
19+
20+
| Attribute | Value |
21+
| --- | --- |
22+
| Product Name | SQL Server |
23+
| Event ID | 10054 |
24+
| Event Source | MSSQLSERVER |
25+
| Component | SQLEngine |
26+
| Symbolic Name | |
27+
| Message Text | A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.) (Framework Microsoft SqlClient Data Provider). |
28+
29+
## Explanation
30+
31+
A connection to the server was attempted and established, but then before signing in, an error occurred.
32+
33+
This error can occur when trying to connect to [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] using a lower level of encryption than required.
34+
35+
## User action
36+
37+
To find the cause of the error, review the configuration for [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)]. For information on how to encrypt connections for [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)], see [Configure SQL Server Database Engine for encrypting connections](../../database-engine/configure-windows/configure-sql-server-encryption.md).
38+
39+
For more information related to troubleshooting, see [An existing connection was forcibly closed by the remote host (OS error 10054)](/troubleshoot/sql/database-engine/connect/tls-exist-connection-closed).
40+
41+
## Related content
42+
43+
- [Special cases for encrypting connections to SQL Server](../../database-engine/configure-windows/special-cases-for-encrypting-connections-sql-server.md)
44+
- [Certificate requirements for SQL Server](../../database-engine/configure-windows/certificate-requirements.md)
45+
- [TDS 8.0](../security/networking/tds-8.md)

docs/relational-databases/security/networking/tds-8.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,29 @@ description: This article discusses TDS 8.0, the application layer protocol used
44
author: VanMSFT
55
ms.author: vanto
66
ms.reviewer: randolphwest
7-
ms.date: 08/02/2023
7+
ms.date: 02/29/2024
88
ms.service: sql
99
ms.subservice: security
1010
ms.topic: conceptual
11-
monikerRange: ">= sql-server-ver16||>= sql-server-linux-ver16||=azuresqldb-current||=azuresqldb-mi-current"
11+
monikerRange: ">=sql-server-ver16 || >=sql-server-linux-ver16 || =azuresqldb-current || =azuresqldb-mi-current"
1212
---
1313
# TDS 8.0
1414

1515
[!INCLUDE [SQL Server 2022, Azure SQL Database, Azure SQL Managed Instance](../../../includes/applies-to-version/sqlserver2022-asdb-asmi.md)]
1616

1717
[!INCLUDE [sssql22-md](../../../includes/sssql22-md.md)], [!INCLUDE [ssazure-sqldb](../../../includes/ssazure-sqldb.md)], and [!INCLUDE [ssazuremi-md](../../../includes/ssazuremi-md.md)] support Tabular Data Stream (TDS) 8.0.
1818

19-
The [Tabular Data Stream (TDS)](/openspecs/windows_protocols/ms-tds/b46a581a-39de-4745-b076-ec4dbb7d13ec) protocol is an application layer protocol used by clients to connect to SQL Server, while SQL Server uses Transport Layer Security (TLS) to encrypt data that is transmitted across a network between an instance of SQL Server and a client application.
19+
The [Tabular Data Stream (TDS)](/openspecs/windows_protocols/ms-tds/b46a581a-39de-4745-b076-ec4dbb7d13ec) protocol is an application layer protocol used by clients to connect to SQL Server. SQL Server uses Transport Layer Security (TLS) to encrypt data that is transmitted across a network between an instance of SQL Server and a client application.
2020

21-
TDS is a secure protocol, but in previous versions of SQL Server, encryption could be turned off or not enabled. To meet the standards of mandatory encryption while using SQL Server, an iteration of the TDS protocol was introduced: TDS 8.0
21+
TDS is a secure protocol, but in previous versions of SQL Server, encryption could be turned off or not enabled. To meet the standards of mandatory encryption while using SQL Server, an iteration of the TDS protocol was introduced: TDS 8.0.
2222

23-
The TLS handshake now precedes any TDS messages, wrapping the TDS session in TLS to enforce encryption, making TDS 8.0 aligned with HTTPS and other web protocols. This significantly contributes to TDS traffic manageability as standard network appliances are now able to filter and securely passthrough SQL queries.
23+
The TLS handshake now precedes any TDS messages, wrapping the TDS session in TLS to enforce encryption, making TDS 8.0 aligned with HTTPS and other web protocols. This significantly contributes to TDS traffic manageability, as standard network appliances are now able to filter and securely passthrough SQL queries.
2424

2525
Another benefit to TDS 8.0 compared to previous TDS versions is compatibility with TLS 1.3, and TLS standards to come. TDS 8.0 is also fully compatible with TLS 1.2 and previous TLS versions.
2626

2727
## How TDS works
2828

29-
The Tabular Data Stream (TDS) protocol is an application-level protocol used for the transfer of requests and responses between clients and database server systems. In such systems, the client will typically establish a long-lived connection with the server. Once the connection is established using a transport-level protocol, TDS messages are used to communicate between the client and the server.
29+
The Tabular Data Stream (TDS) protocol is an application-level protocol used for the transfer of requests and responses between clients and database server systems. In such systems, the client typically establishes a long-lived connection with the server. Once the connection is established using a transport-level protocol, TDS messages are used to communicate between the client and the server.
3030

3131
During the TDS session lifespan, there are three phases:
3232

@@ -44,7 +44,7 @@ TCP handshake :arrow_right: TLS handshake :arrow_right: TDS prelogin (encrypted)
4444

4545
## Strict connection encryption
4646

47-
To use TDS 8.0, [!INCLUDE [sssql22-md](../../../includes/sssql22-md.md)] added `strict` as an additional connection encryption type to SQL Server drivers (`Encrypt=strict`). Download the latest version of the .NET, ODBC, OLE DB, JDBC, PHP and Python drivers to use the `strict` connection encryption type.
47+
To use TDS 8.0, [!INCLUDE [sssql22-md](../../../includes/sssql22-md.md)] added `strict` as an additional connection encryption type to SQL Server drivers (`Encrypt=strict`). To use the `strict` connection encryption type, download the latest version of the .NET, ODBC, OLE DB, JDBC, PHP, and Python drivers.
4848

4949
- [Microsoft ADO.NET for SQL Server and Azure SQL Database](../../../connect/ado-net/microsoft-ado-net-sql-server.md) version 5.1 or higher
5050
- [ODBC Driver for SQL Server](../../../connect/odbc/download-odbc-driver-for-sql-server.md) version 18.1.2.1 or higher
@@ -59,7 +59,7 @@ In order to prevent a man-in-the-middle attack with `strict` connection encrypti
5959

6060
The `Force Strict Encryption` option added with TDS 8.0 in SQL Server Network Configuration forces all clients to use `strict` as the encryption type. Any clients or features without the `strict` connection encryption fail to connect to SQL Server.
6161

62-
The following is a list of features or tools that still use previous version of drivers that don't support TDS 8.0, and as such, may not work with the `strict` connection encryption:
62+
The following features or tools still use previous version of drivers that don't support TDS 8.0, and as such, might not work with the `strict` connection encryption:
6363

6464
- Always On availability groups
6565
- Always On failover cluster instance (FCI)
@@ -80,9 +80,9 @@ The following additions are added to connection strings for encryption:
8080
| Keyword | Default | Description |
8181
| --- | --- | --- |
8282
| **Encrypt** | *false* | **Existing behavior**<br />When `true`, SQL Server uses TLS encryption for all data sent between the client and server if the server has a certificate installed. Recognized values are `true`, `false`, `yes`, and `no`. For more information, see [Connection String Syntax](/dotnet/framework/data/adonet/connection-string-syntax).<br /><br />**Change of behavior**<br />When set to `strict`, SQL Server uses TDS 8.0 for all data sent between the client and server.<br /><br />When set to `mandatory`, `true`, or `yes`, SQL Server uses TDS 7.x with TLS/SSL encryption for all data sent between the client and server if the server has a certificate installed.<br /><br />When set to `optional`, `false`, or `no`, the connection uses TDS 7.x and would be encrypted only if required by the SQL Server. |
83-
| **TrustServerCertificate** | *false* | **Existing behavior**<br />Set to `true` to specify that the driver doesn't validate the server TLS/SSL certificate. If `true`, the server TLS/SSL certificate is automatically trusted when the communication layer is encrypted using TLS.<br /><br />If `false`, the driver validates the server TLS/SSL certificate. If the server certificate validation fails, the driver raises an error and closes the connection. The default value is `false`. Make sure the value passed to `serverName` exactly matches the `Common Name (CN)` or DNS name in the `Subject Alternate Name` in the server certificate for a TLS/SSL connection to succeed.<br /><br />**Change of behavior for Microsoft ODBC Driver 18 for SQL Server**<br />If **Encrypt** is set to `strict`, this setting specifies the location of the certificate to be used for server certificate validation (exact match). The driver supports PEM, DER, and CER file extensions.<br /><br />If Encrypt is set to `true` or `false`, and the `TrustServerCertificate` property is unspecified or set to `null`, `true` or `false`, the driver uses the `ServerName` property value on the connection URL as the host name to validate the SQL Server TLS/SSL certificate. |
83+
| **TrustServerCertificate** | *false* | **Existing behavior**<br />Set to `true` to specify that the driver doesn't validate the server TLS/SSL certificate. If `true`, the server TLS/SSL certificate is automatically trusted when the communication layer is encrypted using TLS.<br /><br />If `false`, the driver validates the server TLS/SSL certificate. If the server certificate validation fails, the driver raises an error and closes the connection. The default value is `false`. Make sure the value passed to `serverName` exactly matches the `Common Name (CN)` or DNS name in the `Subject Alternate Name` in the server certificate for a TLS/SSL connection to succeed.<br /><br />**Change of behavior for Microsoft ODBC Driver 18 for SQL Server**<br />If **Encrypt** is set to `strict`, this setting specifies the location of the certificate to be used for server certificate validation (exact match). The driver supports PEM, DER, and CER file extensions.<br /><br />If Encrypt is set to `true` or `false`, and the `TrustServerCertificate` property is unspecified or set to `null`, `true`, or `false`, the driver uses the `ServerName` property value on the connection URL as the host name to validate the SQL Server TLS/SSL certificate. |
8484
| **HostNameInCertificate** | *null* | The host name to be used in validating the SQL Server TLS/SSL certificate. If the **HostNameInCertificate** property is unspecified or set to `null`, the driver uses the `ServerName` property value as the host name to validate the SQL Server TLS/SSL certificate. |
8585

86-
## Next steps
86+
## Related content
8787

8888
- [Connect to SQL Server with strict encryption](connect-with-strict-encryption.md)

0 commit comments

Comments
 (0)