连接到 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
。
若要查找完全限定的服务器名称,请执行以下操作:
- 转到 Azure 门户。
- 选择“Synapse 工作区”。
- 选择要连接到的工作区。
- 转到“概览”。
- 找到完整的服务器名称。
- 对于专用 SQL 池,请使用 SQL 终结点。
- 对于无服务器 SQL 池,请使用按需 SQL 终结点。
支持的工具
使用 Azure Data Studio 或 SQL Server Management Studio (SSMS)。
对于无服务器 SQL 池:
- 从版本 1.18.0 开始,完全支持 Azure Data Studio。
- 从版本 18.5 开始,SQL Server Management Studio 部分支持 SSMS,仅可以使用其进行连接和查询。
支持的驱动程序和连接字符串
Synapse SQL 支持 ADO.NET、ODBC、PHP 和 JDBC。 选择前述的驱动程序之一,查找最新版本和文档。 若要自动生成通过 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 进行身份验证。