Fact-checked by Grok 2 weeks ago

Tabular Data Stream

Tabular Data Stream (TDS) is an application-layer protocol that enables communication between clients and database servers, facilitating the exchange of SQL queries, calls, , encryption negotiation, data retrieval, and transaction management over a reliable transport like /IP. Originally developed by Sybase Inc. in 1984 for its Sybase SQL Server engine, TDS addressed the need for efficient client-server data transmission in early networked database environments. In 1990, Microsoft licensed the protocol from Sybase and adapted it for after the two companies' database products diverged, evolving it into a proprietary standard integral to SQL Server's architecture. TDS operates as a packet-based , where messages are divided into variable-length packets—with a maximum size typically of 4096 bytes in modern versions—each beginning with an 8-byte header specifying the packet type, status, length, and other , followed by data such as credentials, query text, or result rows. Key packet types include those for SQL batches (type 0x01), remote procedure calls (type 0x03), and responses featuring tokens like COLMETADATA for column descriptions, ROW for data rows, and DONE for result completion, ensuring self-describing, record-oriented data streams. The protocol has evolved through several versions to support advancing database features and security requirements: Clients interact with TDS through APIs such as ODBC, DB-Library, or CT-Library, with open-source implementations like FreeTDS providing compatibility for non-Microsoft environments. Despite its proprietary nature, TDS remains a cornerstone of SQL Server's client-server model, enabling efficient, binary-encoded data transfer while supporting across decades of database evolution.

Overview

Definition and Purpose

The Tabular Data Stream (TDS) is an application-layer at OSI layer 7, functioning as a mechanism to enable interactions between clients and database servers. It supports the transfer of SQL queries, execution results, and associated in a binary-encoded format over long-lived connections established via underlying transport protocols. The primary purpose of TDS is to facilitate efficient data exchange in client-server architectures for relational databases, with a particular focus on systems like . By providing a structured, compact representation of tabular —organized into rows and columns—it streamlines the communication of query outcomes and supports advanced operations such as data loading and procedural calls, including stored procedures. TDS offers key benefits like reliable, in-order delivery of self-describing, record-oriented data accompanied by , which optimizes communication for database applications. Originally developed by Sybase for its SQL Server product, it has since become a foundational element in SQL Server's client-server interactions.

Transport Layer Integration

The Tabular Data Stream (TDS) protocol integrates with the primarily through reliable, in-sequence delivery mechanisms, with /IP serving as the default network transport for remote connections. SQL Server instances listen on port 1433 by default, allowing clients to establish connections using this standard port for the default instance. For named instances, which utilize dynamic ports to avoid port conflicts, clients query the SQL Server Browser service via port 1434 to obtain the instance-specific port number before initiating the TDS session. This browser service responds with the dynamic port, enabling seamless connection routing without requiring manual port configuration. TDS messages are encapsulated as binary streams within TCP segments, ensuring that the protocol's packet-based structure is preserved across the without fragmentation issues in stream-oriented protocols like . Prior to full , a pre- handshake occurs over the established connection, where the client sends a PRELOGIN (packet type 0x12) to negotiate , options, and instance options. The responds accordingly, facilitating setup for secure contexts such as TLS if required, with the ensuring compatibility before proceeding to . In message-oriented transports, each TDS must fit within a single data unit to maintain integrity. At the transport level, error handling for TDS involves resets or timeouts in response to invalid streams or negotiation failures; for instance, if the pre-login token is malformed or encryption requirements mismatch, the terminates the . This relies on the underlying 's reliability, such as TCP's acknowledgment mechanisms, to detect and recover from transmission errors, with the client or closing the upon irrecoverable issues. For local inter-process communication on the same machine, TDS supports alternative transports including named pipes and shared memory, which provide lower-latency options without network overhead. Named pipes enable TDS streams over a pipe-based interface for client-server interactions within the same system, while shared memory uses direct memory mapping for the fastest local access, both adhering to the same pre-login and message encapsulation rules as TCP/IP. These options are configurable via SQL Server Configuration Manager and are particularly useful for high-performance, non-remote scenarios.

History

Origins in Sybase SQL Server

The Tabular Data Stream (TDS) was developed by Sybase Inc. starting in 1984 as part of their Sybase SQL Server management system, initially targeted at UNIX platforms to enable client-server data exchange. The primary design goals centered on providing an efficient mechanism for transferring tabular data between clients and servers over networks, addressing the absence of a standardized application-level for at the time. To achieve this, TDS employed a compact format that minimized usage compared to text-based alternatives, supporting high-performance query execution and result set delivery in resource-constrained environments. Early implementations integrated TDS with Sybase's foundational client libraries: db-lib, which served as the primary for application developers to issue SQL queries and process responses, and netlib, a lower-level library handling across protocols such as /IP, DECnet, IPX/SPX, and NetBEUI. These components formed the backbone of Sybase's Open Client/Server architecture, allowing flexible connectivity while encapsulating TDS packets for reliable transmission. By abstracting details through netlib, db-lib enabled developers to focus on database interactions without managing underlying layers, promoting widespread adoption of Sybase SQL Server in enterprise settings during the late 1980s. The first documented version of TDS, 4.2, emerged in the late 1980s alongside early releases of Sybase SQL Server (versions prior to 10.0), providing core support for basic query submission, parameter handling, and tabular result sets in a client-server model. This version established the packet-based structure that defined TDS, including headers for type, status, and length to streamline data flow. In the early 1990s, Sybase advanced the protocol with the release of the TDS 5.0 specification as part of System 10, introducing enhanced capabilities such as negotiated protocol features for future extensibility and the bulk copy protocol (BCP) for high-volume data import/export operations via dedicated packet types. These documentation efforts by Sybase formalized TDS as an open protocol, facilitating third-party implementations while maintaining compatibility with evolving server features. This foundation in Sybase SQL Server later influenced Microsoft's adoption of TDS for their SQL Server product.

Adoption and Evolution in Microsoft SQL Server

In 1990, Sybase entered into a technology-sharing agreement with Microsoft, enabling the joint development and marketing of as a management system. This collaboration allowed Microsoft to leverage Sybase's existing SQL Server technology, initially ported to Microsoft's platform, while adapting it for broader enterprise use. Microsoft's first independent release came with SQL Server 4.21 for in 1993, which preserved the core Tabular Data Stream (TDS) protocol inherited from Sybase to ensure compatibility and efficient client-server communication. Key evolutions in the mid-1990s included the introduction of (ODBC) support in SQL Server 6.0, released in 1995, which standardized data access and facilitated integration with diverse applications. The partnership formally ended in 1994, prompting Microsoft to fork the codebase and pursue independent development, diverging from Sybase's direction while maintaining with TDS. In 2008, published the official [MS-TDS] specification as part of its Open Specifications, detailing the protocol for TDS versions 7.0 and beyond to promote and developer adoption. This documentation formalized TDS's structure for request-response interactions in environments. Recent advancements have focused on cloud integration, with enhancements to TDS supporting SQL Database and other deployments for scalable, secure data handling. Notably, TDS 8.0 was introduced in 2022, mandating TLS 1.3 encryption to bolster security in transit and aligning with modern cloud-native requirements.

Protocol Fundamentals

Packet Format

The Tabular Data Stream (TDS) protocol structures its messages as discrete packets, each beginning with an 8-byte header that defines the packet's metadata and content type. This header ensures reliable transmission over the underlying , such as , by specifying the packet's boundaries and sequence within a larger . The payload follows the header and carries the actual data, organized as variable-length content up to the negotiated maximum packet size, typically 4096 bytes in modern implementations. The packet header consists of the following fields:
OffsetSize (bytes)Field NameDescription
01TypeSpecifies the message type, indicating the category of the packet's content, such as a query or response.
11Contains flags for packet status; the least significant bit (0x01) signals the end-of-message (EOM), while other bits may indicate or ignore conditions.
22LengthUnsigned short in network byte order, representing the total size of the packet (header plus ) in bytes.
42SPIDServer Process ID (unsigned short), identifying the server-side session for the .
61Packet SequenceByte value used for ordering packets within a multi-packet .
71Byte value for managing flow control windows; typically set to 0x00 and not used.
Message types are categorized to support various operations: login packets handle pre-authentication setup, query packets execute SQL statements, RPC packets invoke stored procedures, and response packets deliver results, row , or . For messages exceeding the packet size limit, chaining allows segmentation across multiple packets; intermediate packets have the EOM bit unset in the status field, while the final packet sets it to indicate completion. The payload within each packet typically contains token-based streams for structured parsing, though the exact token details are handled separately. Bulk data handling uses dedicated packets for efficient high-volume operations like inserts, distinct from standard query or response packets. These bulk load packets employ a specialized format with row buffers, including fixed and variable column data, offset tables, and adjustment indicators to manage large datasets without the overhead of regular token streams. The maximum packet size can be negotiated during setup, but it must not exceed 32767 bytes, ensuring compatibility with constraints.

Token-Based Data Streams

In the Tabular Data Stream (TDS) protocol, data is encoded using a token-based mechanism where each token serves as a single-byte identifier ranging from 0x01 to 0xFF, immediately followed by type-specific data that describes the content, length, and structure of the subsequent payload. This approach creates self-describing streams that allow efficient parsing without the verbosity of markup languages like XML, as the token directly signals the and boundaries for the receiver. By using compact tokens, TDS minimizes overhead in database interactions, enabling rapid and deserialization of query results and parameters. Common token types facilitate the structured exchange of information within these streams. The ROW token (0xD1) precedes the actual data values for one or more rows in a result set, with each column's formatted according to its . The COLMETADATA token (0x81) provides upfront details about the columns, such as data types, sizes, and flags, ensuring clients can interpret subsequent ROW tokens correctly. For completion and status, the DONE token (0xFD) signals the end of a response, often including flags for success, more results, or counts of affected rows. In cases of issues, the ERROR token (0xAA) conveys exception details, including error numbers, severity levels, and messages, allowing graceful handling by the client. Data streams in TDS flow as ordered sequences of these tokens, primarily within the payload of TDS packets. Server responses to queries typically begin with a COLMETADATA token to define the structure, followed by one or more ROW tokens containing the actual data, and conclude with a DONE token to indicate finality. Client requests, such as those for remote procedure calls or bulk operations, are similarly structured using tokens to encapsulate parameters and commands in a predictable format. This sequential token arrangement supports streaming processing, where clients can begin decoding data incrementally without waiting for the entire response. Handling variable-length data is integral to token design, particularly for complex types like table-valued parameters (TVPs). The TVP token introduces a nested structure, beginning with metadata for the table's columns, followed by sub-tokens for rows within the parameter, enabling the transmission of entire datasets as a single, self-contained unit. For binary or large object () data, tokens incorporate length prefixes—such as USHORT or ULONG fields—to specify the exact size, preventing ambiguity in parsing streams with indeterminate boundaries. Parsing rules for token streams emphasize flexibility and efficiency, with tokens supporting nesting for hierarchical data and optionality to skip non-essential elements based on context. Receivers process the stream by reading the token byte, then consuming the associated data according to the 's defined format, which may include fixed-length fields, variable-length indicators, or further embedded . This rule set ensures robustness, as incomplete or malformed can be detected early through length mismatches or invalid identifiers.

Versions

Early Versions (TDS 4.x and 5.0)

The Tabular Data Stream (TDS) protocol version 4.2, introduced in the late 1980s, provided foundational support for basic database interactions in early implementations of Sybase SQL Server. It enabled simple queries through language packets and handled responses using fixed-length columns for data types such as integers and character strings, ensuring predictable packet structures for client-server communication. This version lacked support for , relying exclusively on single-byte ASCII character sets, which limited capabilities in multi-language environments. TDS 5.0, developed in the early and documented by Sybase, extended the protocol's flexibility for more advanced operations in Sybase SQL Server versions 10 and later. It introduced support for variable-length columns, allowing efficient handling of data types like and VARBINARY with lengths up to 255 bytes, as specified in row format and parameter format tokens. Key enhancements included the bulk copy protocol (BCP), facilitated through dedicated packets for high-volume data transfers, and improved error handling via extended error tokens that provided detailed messages with status, severity, and state information. Early TDS versions exhibited several limitations that constrained their applicability in modern contexts. They offered no dedicated support for stored procedures with output parameters, requiring workarounds such as treating outputs as result set columns when invoking procedures via or RPC packets. Security was notably weak, with relying on plaintext passwords transmitted in login packets unless an optional flag was set in TDS 5.0, and no built-in mechanisms for channel . Character set handling remained restricted to ASCII-only encodings, without native integration. Despite these constraints, TDS 4.2 and 5.0 remain supported in modern installations for , achieved through version negotiation during the login process to accommodate legacy Sybase clients. These versions were primarily utilized in legacy environments on UNIX and early Windows systems, prior to the widespread adoption of ODBC standards in the mid-1990s, where direct TDS connections were common for application-database interactions.

Modern Versions (TDS 7.x and 8.0)

The modern versions of the Tabular Data Stream (TDS) protocol, spanning the 7.x series and version 8.0, introduced key enhancements to accommodate advanced SQL Server capabilities, including richer data types, concurrent operations, and robust security features. These versions evolved to support for global data handling, multiple modes, and specialized for complex data structures, while later iterations emphasized and optimization. The 7.x family laid the groundwork for feature-rich interactions, with TDS 8.0 marking a shift toward mandatory secure transport for contemporary deployments. TDS 7.0, aligned with SQL Server 7.0, added support to enable transmission of international characters via UTF-16 encoding in string fields, replacing earlier limitations. It integrated options, including Windows integrated authentication and SQL Server logins, through the LOGIN7 message structure for secure connection establishment. It also introduced optional TDS-layer and support for larger packet sizes up to 4096 bytes. TDS 7.1, corresponding to SQL Server 2000, added support for 64-bit integers and variant types, along with enhanced encryption negotiation at the TDS layer. TDS 7.2, introduced with SQL Server 2005, introduced tokens for the XML type to structured XML documents directly in results, facilitating native XML processing without conversion. It also added hints in control messages to support consistent read operations, enhanced operations with optimized sequences for faster loading, and Multiple Active Result Sets (MARS) for handling multiple pending requests on a single connection. These improvements reduced round trips and improved efficiency for XML-heavy and transactional workloads. TDS 7.3, used in SQL Server 2008 and later, extended support for table-valued parameters (TVPs) via dedicated tokens such as TVP_ROW and TVP_COLUMN, allowing clients to pass tabular data as parameters to stored procedures in a single request. These versions also included tokens for sparse columns to efficiently represent data with many null values and FILESTREAM data for streaming large binary objects, integrating file system storage with database operations. It further supported extended date/time data types. TDS 7.4, implemented in SQL Server 2012 and subsequent releases, incorporated support for session recovery and read-only routing. Always Encrypted, introduced in SQL Server 2016 using TDS 7.4, provides support for encrypted column tokens, ensuring sensitive data remains protected in transit without server-side decryption. TDS 8.0, debuted with SQL Server 2022, enforces mandatory TLS 1.2 encryption via a preceding , with optional TLS 1.3 support based on the host OS, to secure all traffic end-to-end. It enables federated authentication with Active Directory ( AD) for in hybrid and cloud scenarios. Optimized token streams minimize overhead and latency in cloud environments by aligning with TLS-secured HTTPS-like flows, improving compatibility with firewalls and proxies. Version negotiation in these modern TDS versions relies on pre-login packet exchanges to determine the compatible level and capabilities at connection time, ensuring . For the 7.x series, clients propose versions in the pre-login phase and confirm via the LOGIN7 response; TDS 8.0 uses the TLS (ALPN) extension instead, ignoring legacy LOGIN7 if present.

Implementations and Security

Client and Server Implementations

Microsoft provides several native client libraries for connecting to SQL Server using the Tabular Data Stream (TDS) protocol. The Microsoft.Data.SqlClient (formerly System.Data.SqlClient) is the primary .NET data provider for SQL Server, enabling applications to execute queries and manage connections via TDS. The ODBC Driver for SQL Server offers a standardized interface for ODBC-compliant applications to interact with SQL Server databases over TDS. Additionally, the Microsoft JDBC Driver for SQL Server supports Java applications in establishing TDS-based connections to SQL Server instances. Open-source alternatives include FreeTDS, an LGPL-licensed C library that implements the TDS protocol for and Unix environments, allowing clients to connect to both and Sybase databases; it supports TDS versions from 4.2 to 8.0. On the server side, (both on-premises and SQL Database) natively implements TDS as its core communication protocol for client interactions. SAP Adaptive Server Enterprise (ASE, formerly Sybase ASE) natively implements the TDS protocol (primarily version 5.0) as its core communication protocol for client-server interactions. Its Open Client libraries enable client compatibility with legacy TDS versions. For protocol analysis, the Wireshark network analyzer includes a dedicated TDS dissector that captures and decodes TDS packets, facilitating troubleshooting and inspection of TDS traffic. Third-party tools and frameworks also leverage TDS implementations for broader ecosystem integration. Database management tools such as DBeaver support connections to Microsoft SQL Server via TDS, using drivers like JDBC for querying and administration. HeidiSQL provides TDS-based access to SQL Server databases through its Microsoft SQL Server connection type, supporting data editing and query execution. In ORM frameworks, Entity Framework utilizes the SqlClient TDS provider to enable object-relational mapping with SQL Server. Cross-platform development has evolved from Sybase's procedural db-lib API, which directly handled TDS streams in early Open Client libraries, to modern abstractions like ADO.NET, which encapsulates TDS functionality in higher-level, platform-agnostic components for .NET applications.

Authentication and Encryption Mechanisms

The Tabular Data Stream (TDS) protocol incorporates a pre-login prior to the exchange of TDS messages, where clients and servers negotiate connection parameters including methods and support. This uses specific to determine for mechanisms such as or via the Security Support Provider Interface (SSPI), or federated with (formerly Azure Active Directory) using FEDAUTH . If integrated fails or is unavailable, the protocol falls back to SQL Server username and password logins provided in the subsequent LOGIN7 packet. For Windows-based authentication, TDS relies on SSPI to facilitate secure , embedding SPNEGO tokens within the process. The client initiates by including an initial SPNEGO token in the LOGIN7 message, prompting the server to respond with its own token for challenge-response verification. Subsequent SSPI messages (packet type 0x11) exchange additional tokens until completes, at which point the server issues a LOGINACK token confirming the session. This mechanism supports providers like for challenge-response handshakes and for ticket-based without transmitting credentials in . Encryption in TDS protects by wrapping streams in (TLS) or Secure Sockets Layer (SSL), with options varying by protocol version. In TDS 7.x, encryption is optional and negotiated during pre-login; clients can enforce it via parameters like Encrypt=mandatory (formerly known as FORCE ENCRYPT), which attempts TLS if a server certificate is available, falling back to unencrypted if not. TDS 8.0, introduced in SQL Server 2022, mandates encryption at the before any TDS messages are sent, supporting TLS 1.3 alongside earlier versions like 1.2, and always requiring certificate validation to prevent insecure fallbacks. TDS addresses key vulnerabilities through version-specific mitigations, particularly against downgrade attacks and man-in-the-middle (MITM) interception. In earlier versions like TDS 7.x, attackers can perform MITM by altering pre-login packets to report as unsupported (e.g., ENCRYPT_NOT_SUP), forcing clients to send credentials in LOGIN7 packets. TDS 8.0 counters this by enforcing mandatory TLS and strict mode (Encrypt=strict), which prohibits unencrypted connections and disables options like TrustServerCertificate=true that bypass validation. Certificate validation, including hostname matching via the HostNameInCertificate parameter, further mitigates MITM by ensuring the server's identity during the TLS handshake. The encrypted TDS streams support regulatory compliance for data protection standards such as GDPR and HIPAA by securing sensitive information during transmission. Under HIPAA's Security Rule, encryption of electronic protected health information (ePHI) in transit is an addressable specification met by TDS's TLS wrapping, which prevents unauthorized access to tabular data streams. Similarly, GDPR's Article 32 requires appropriate technical measures like encryption for personal data transfers, which TDS 8.0's mandatory protection fulfills when configured strictly. While TDS itself does not handle auditing, its login acknowledgment and environmental change tokens integrate with SQL Server auditing features to log authentication events, aiding compliance reporting.

References

  1. [1]
    [MS-TDS]: Tabular Data Stream Protocol - Microsoft Learn
    Apr 9, 2023 · Specifies the Tabular Data Stream Protocol, which is an application layer request/response protocol that facilitates interaction with a database server.
  2. [2]
    [MS-TDS]: Overview - Microsoft Learn
    Aug 29, 2025 · The Tabular Data Stream (TDS) protocol versions 7 and 8, hereinafter referred to as "TDS", is an application-level protocol used for the ...
  3. [3]
    Protocols/tds - Wireshark Wiki
    Tabular Data Stream (TDS) is a protocol, or a set of rules describing how to transmit data between two computers.
  4. [4]
    Chapter 1. What is FreeTDS?
    The TDS protocol was designed and developed by Sybase Inc. for their Sybase SQL Server relational database engine in 1984. The problem Sybase faced then still ...
  5. [5]
    tabular data stream - IDERA
    Tabular Data Stream is a protocol used by SQL Server to transfer data between clients and servers efficiently. Learn how it powers SQL communication.
  6. [6]
    TDS Protocol Documentation - FreeTDS
    Every information in TDS protocol (query, RPCs, responses and so on) is splitted in packets. All packets start with the following 8 byte header.
  7. [7]
    What Is TDS? Understanding Network Protocols By WireX Systems
    Apr 9, 2023 · TDS (Tabular Data Stream) is a network protocol used primarily for communication between Microsoft SQL Server and its clients. It is an ...
  8. [8]
    [MS-TDS]: Introduction - Microsoft Learn
    Nov 1, 2022 · The Tabular Data Stream (TDS) protocol is a request/response protocol for database interaction, enabling authentication, SQL requests, remote ...
  9. [9]
    [MS-TDS]: Transport - Microsoft Learn
    May 14, 2024 · Named Pipes [MSDN-NP]. Shared memory [MSDN-TDSENDPT]. Optionally, the TDS protocol has implementations for the following protocols on top of ...Missing: IP | Show results with:IP
  10. [10]
    Configure SQL Server to Listen on a Specific TCP Port
    Aug 26, 2025 · Named instances of the Database Engine and SQL Server Compact are configured for dynamic ports. This means they select an available port when ...
  11. [11]
    404 - Content Not Found
    No readable text found in the HTML.<|separator|>
  12. [12]
    [MS-TDS]: PRELOGIN - Microsoft Learn
    Apr 9, 2023 · A message sent by the client to set up context for login. The server responds to a client PRELOGIN message with a message of packet header type 0x04.
  13. [13]
    [MS-TDS]: Sent Attention State - Microsoft Learn
    Aug 29, 2025 · If the response received from the server is not structurally valid, then the TDS client MUST close the underlying transport connection, ...Missing: level | Show results with:level
  14. [14]
    Enable or Disable a Server Network Protocol - SQL - Microsoft Learn
    Aug 26, 2025 · This article describes how to enable or disable a server network protocol in SQL Server by using SQL Server Configuration Manager or PowerShell.
  15. [15]
    History of TDS Versions - FreeTDS
    Versions of the TDS protocol. TDS 4.2 Sybase and Microsoft. The version in use at the time of the Sybase/Microsoft split. TDS 5.0 Sybase. Introduced for Sybase.Missing: late 1980s
  16. [16]
    Sybase Inc | Encyclopedia.com
    May 29, 2018 · As a result of this agreement, Microsoft SQL Server for the company's OS/2 computer operating system was released. SQL Server retrieved ...<|control11|><|separator|>
  17. [17]
    All about the History of SQL Server – Xlinesoft Blog
    Mar 5, 2017 · It was actually Microsoft, Sybase and the Adaptive that originally formed a team to create and launch the very first version of the SQL server ...Missing: development 1984
  18. [18]
    History of Microsoft SQL Server - Licenseware
    Feb 24, 2023 · The first version of SQL Server, known as SQL Server 1.0, was released in 1989 for the OS/2 operating system.
  19. [19]
    Help Me Update the History of SQL Server - Kevin E. Kline
    Sep 12, 2012 · It covers the period from 1987 when Microsoft signed an agreement with Sybase to SQL Server 2008 R2. Part1: http://www.saudigeek.net/?p=210
  20. [20]
    What's New? (Archive) - Azure SQL Database
    Sep 9, 2025 · TDS 8.0 GA, August, Azure SQL Database now supports TDS 8.0 for strict encryption of data in transit. Azure SQL bindings for Azure Functions GA ...
  21. [21]
    What's New in SQL Server 2022 - Microsoft Learn
    Sep 8, 2025 · Support MS-TDS 8.0 protocol, New MS-TDS protocol iteration. See TDS 8.0 and TLS 1.3 support: - Makes encryption mandatory - Aligns MS-TDS ...Get SQL Server 2022 (16.x) · Feature highlights
  22. [22]
    TDS 8.0 - SQL Server - Microsoft Learn
    Sep 18, 2025 · With the introduction of TDS 8.0, the SQL Server connections are as follows: TCP handshake ➡️ TLS handshake ➡️ TDS prelogin (encrypted) ...
  23. [23]
    [MS-TDS]: Packet Header - Microsoft Learn
    Aug 29, 2025 · The packet header precedes all data within the packet. It is always 8 bytes in length. Most importantly, the packet header states the Type ( ...Missing: structure sequence
  24. [24]
    [MS-TDS]: Length
    ### TDS Packet Header Structure
  25. [25]
    [MS-TDS]: Type - Microsoft Learn
    Aug 29, 2025 · The following table highlights which messages, as described previously in sections 2.2. 1 and 2.2. 2, correspond to which packet header type.Missing: structure | Show results with:structure
  26. [26]
    [MS-TDS]: Packets - Microsoft Learn
    Aug 29, 2025 · A packet always includes a packet header and is usually followed by packet data that contains the message. Each new message starts in a new ...
  27. [27]
  28. [28]
    [MS-TDS]: Packet Data Token and Tokenless Data Streams
    Sep 26, 2024 · A token stream consists of one or more "tokens" each followed by some token-specific data. A "token" is a single byte identifier that is used to ...
  29. [29]
    [MS-SSTDS]: Tabular Data Stream Protocol Version 4.2
    Nov 1, 2022 · Specifies Tabular Data Stream Version 4.2 (TDS 4.2), which is an application layer request/response protocol that facilitates interaction with a database.Missing: Sybase late 1980s
  30. [30]
    FAQ - FreeTDS
    ... stored procedures with output parameters. Earlier servers let you send a query like EXECUTE A @P OUTPUT and fetch the output parameter as a special result ...
  31. [31]
    Choosing a TDS protocol version - FreeTDS
    When MSSQL 2000 (product 8.0) was released, there was semi-official indications from the Microsoft community that the TDS protocol would be version 8.0.
  32. [32]
    [MS-TDS]: LOGIN7 - Microsoft Learn
    Apr 9, 2023 · Packet header type 0x10. The length of a LOGIN7 stream MUST NOT be longer than 128K-1(byte) bytes. The OffsetLength and Data rules define ...
  33. [33]
    Using XML Data Types - SQL Server Native Client - Microsoft Learn
    Jan 9, 2024 · SQL Server 2005 (9.x) introduced an xml data type that enables you to store XML documents and fragments in a SQL Server database.Data Bindings And Coercions · Ole Db Rowset Additions And... · Ole Db Interface Additions...
  34. [34]
    [MS-TDS]: Versioning and Capability Negotiation - Microsoft Learn
    Aug 29, 2025 · The TDS protocol supports the TDS 7.x version family (which is composed of explicit versions TDS 7.0, TDS 7.1, TDS 7.2, TDS 7.3, and TDS 7.4) and the TDS 8.0 ...
  35. [35]
    Download Microsoft SqlClient Data Provider for SQL Server
    Aug 19, 2025 · In this article. Downloading the driver; Download supported versions of Microsoft SqlClient Data Provider for SQL Server. The Microsoft.Data.Missing: ODBC TDS
  36. [36]
    Download ODBC Driver for SQL Server - Microsoft Learn
    Version information. Release number: 18.5.2.1; Released: September 26, 2025. Note. If you're accessing this ...Microsoft Ignite · The Windows release notes · Installing the driver on macOSMissing: introduction | Show results with:introduction
  37. [37]
    Download Microsoft JDBC Driver for SQL Server
    Oct 14, 2025 · Download the Microsoft JDBC Driver for SQL Server to develop Java applications that connect to SQL Server and Azure SQL Database.Overview of the JDBC driver · Support matrix · Release notes
  38. [38]
    FreeTDS
    FreeTDS is a set of libraries for Unix and Linux that allows your programs to natively talk to Microsoft SQL Server and Sybase databases.
  39. [39]
    Capabilities and the connection's TDS level - Sybase Infocenter
    Because SQL Server 11.0 does not support 5.0 TDS, it replies with a request to use version 4.x of TDS instead. Because 4.x TDS is acceptable to 12.5 Client- ...Missing: history | Show results with:history
  40. [40]
    Microsoft SQL Server | DBeaver Documentation
    DBeaver also supports SQL Server extensions such as Azure SQL Server, Babelfish via TDS and Google Cloud Platform SQL Server. You must select the appropriate ...Setting Up · SQL Server connection settings · SQL Server driver properties
  41. [41]
    HeidiSQL - MariaDB/MySQL, MSSQL, PostgreSQL, SQLite and ...
    HeidiSQL is free software for database work, connecting to MariaDB, MySQL, MS SQL, PostgreSQL, SQLite, Interbase and Firebird, and allows editing data and ...Download HeidiSQL · Screenshot: Export Sql · Basic help on using HeidiSQLMissing: TDS | Show results with:TDS
  42. [42]
    ADO.NET Overview - Microsoft Learn
    Sep 15, 2021 · ADO.NET provides consistent access to data sources such as SQL Server and XML, and to data sources exposed through OLE DB and ODBC.Missing: evolution | Show results with:evolution<|control11|><|separator|>
  43. [43]
    Microsoft Entra Authentication in Fabric Data Warehouse
    Apr 6, 2025 · Fabric uses the Tabular Data Stream (TDS) protocol, the same as SQL Server, when you connect with a connection string. Fabric is compatible with ...Fabric Configuration · Microsoft Odbc Driver · Microsoft Jdbc DriverMissing: mechanisms | Show results with:mechanisms
  44. [44]
    Add support for Microsoft Entra Authentication (formerly Azure Active ...
    Oct 19, 2023 · Entra ID works by obtaining an OAuth token from Microsoft Authentication Library (MSAL). That token is then submitted to the server by using the TDS FEDAUTH ...<|separator|>
  45. [45]
    [MS-TDS]: SSPI Message - Microsoft Learn
    Aug 29, 2025 · A request to supply data for Security Support Provider Interface (SSPI) security. Note that SSPI uses the Simple and Protected GSS-API ...
  46. [46]
    Microsoft SQL Server — TDS Downgrade Attack
    ### Summary of TDS Downgrade Attack
  47. [47]
    Summary of the HIPAA Security Rule | HHS.gov
    Dec 30, 2024 · The Security Rule establishes a national set of security standards to protect certain health information that is maintained or transmitted in electronic form.Missing: TDS GDPR streams