连接到 Synapse SQL

连接到 Azure Synapse Analytics 中的 Synapse SQL 功能。

重要

尽可能使用 Microsoft Entra 身份验证。 有关详细信息,请参阅结合使用 Microsoft Entra 身份验证与 Synapse SQL 进行身份验证

查找服务器名称

以下示例中,专用 SQL 池的服务器名称是 <server-name>.sql.azuresynapse.azure.cn。 以下示例中,无服务器 SQL 池的服务器名称是 <server-name>-ondemand.sql.azuresynapse.azure.cn

若要查找完全限定的服务器名称,请执行以下操作:

  1. 转到 Azure 门户
  2. 选择“Synapse 工作区”。
  3. 选择要连接到的工作区。
  4. 转到“概览”。
  5. 找到完整的服务器名称。
    • 对于专用 SQL 池,请使用 SQL 终结点
    • 对于无服务器 SQL 池,请使用按需 SQL 终结点

支持的工具

使用 Azure Data StudioSQL Server Management Studio (SSMS)

对于无服务器 SQL 池:

支持的驱动程序和连接字符串

Synapse SQL 支持 ADO.NETODBCPHPJDBC。 选择前述的驱动程序之一,查找最新版本和文档。 若要自动生成通过 Azure 门户使用的驱动程序的连接字符串,请选择前述示例中的“显示数据库连接字符串”。 下面也是一些示例,说明了每个驱动程序的连接字符串的样式。

注意

请考虑将连接超时值设置为 300 秒,以便连接可以经受住短时间内不可用。

ADO.NET 连接字符串示例

此简单示例使用了 SQL 身份验证,但建议通过 ADO.NET 进行更加安全的 Microsoft Entra 身份验证

Server=tcp:{your_server}.sql.azuresynapse.azure.cn,1433;Database={your_database};User ID={your_user_name};Password={your_password_here};Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

ODBC 连接字符串示例

此简单示例使用了 SQL 身份验证,但建议通过 ODBC 进行更加安全的 Microsoft Entra 身份验证

Driver={SQL Server Native Client 11.0};Server=tcp:{your_server}.sql.azuresynapse.azure.cn,1433;Database={your_database};Uid={your_user_name};Pwd={your_password_here};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;

PHP 连接字符串示例

此简单示例使用了 SQL 身份验证,但建议通过 PHP 进行更加安全的 Microsoft Entra 身份验证

Server: {your_server}.sql.azuresynapse.azure.cn,1433 \r\nSQL Database: {your_database}\r\nUser Name: {your_user_name}\r\n\r\nPHP Data Objects(PDO) Sample Code:\r\n\r\ntry {\r\n   $conn = new PDO ( \"sqlsrv:server = tcp:{your_server}.sql.azuresynapse.azure.cn,1433; Database = {your_database}\", \"{your_user_name}\", \"{your_password_here}\");\r\n    $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );\r\n}\r\ncatch ( PDOException $e ) {\r\n   print( \"Error connecting to SQL Server.\" );\r\n   die(print_r($e));\r\n}\r\n\rSQL Server Extension Sample Code:\r\n\r\n$connectionInfo = array(\"UID\" => \"{your_user_name}\", \"pwd\" => \"{your_password_here}\", \"Database\" => \"{your_database}\", \"LoginTimeout\" => 30, \"Encrypt\" => 1, \"TrustServerCertificate\" => 0);\r\n$serverName = \"tcp:{your_server}.sql.azuresynapse.azure.cn,1433\";\r\n$conn = sqlsrv_connect($serverName, $connectionInfo);

JDBC 连接字符串示例

此简单示例使用了 SQL 身份验证,但建议通过 JDBC 进行更加安全的 Microsoft Entra 身份验证

jdbc:sqlserver://yourserver.sql.azuresynapse.azure.cn:1433;database=yourdatabase;user={your_user_name};password={your_password_here};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.sql.azuresynapse.azure.cn;loginTimeout=30;

连接设置

Synapse SQL 在连接和创建对象期间会标准化一些设置。 这些设置不能重写,其中包括:

数据库设置
ANSI_NULLS ON
QUOTED_IDENTIFIERS ON
DATEFORMAT mdy
DATEFIRST 7

建议

若要执行无服务器 SQL 池查询,建议使用 Azure Data Studio 和 Azure Synapse Studio 这两个工具。

若要使用 Visual Studio 进行连接和查询,请参阅使用 Visual Studio 进行查询。 若要详细了解身份验证选项,请参阅向 Synapse SQL 进行身份验证