【问题标题】:Connect to SQL Server database with Azure App Service使用 Azure 应用服务连接到 SQL Server 数据库
【发布时间】:2022-01-20 16:42:42
【问题描述】:

我正在为我的公司部署一个网站,该网站最初托管在本地服务器中。现在我想将它上传到云(Azure App Service),但我遇到了一些关于数据库连接字符串的问题。

在开发网站时,我曾经通过 PHP 通过用户身份验证连接到 SQL Server 数据库:

$connectionInfo = array('Database'=>"database_name", "CharacterSet"=>"UTF-8");
$connCRM = sqlsrv_connect($serverName, $connectionInfo);

现在正在部署过程中,我想用db用户和密码连接数据库:

$connectionInfo = array('Database'=>"database_name", "CharacterSet"=>"UTF-8", "UID"=>"user", "PWD"=>"pass");
$connCRM = sqlsrv_connect($serverName, $connectionInfo);

考虑到我没有连接到 VPN(该网站不再位于本地),它似乎找不到我的服务器,即使我通过 TS 访问它(在目标服务器中)。

已尝试使用此用户和密码在 SSMS 中进行身份验证,并且可以正常工作。

错误信息: Array ( [0] => Array ( [0] => HYT00 [SQLSTATE] => HYT00 [1] => 0 [code] => 0 [2] = > [Microsoft][ODBC Driver 17 for SQL Server]登录超时已过期 [消息] => [Microsoft][ODBC Driver 17 for SQL Server]登录超时已过期)[1] => 数组([0] => 08001 [SQLSTATE ] => 08001 [1] => 11001 [code] => 11001 [2] => [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: Error code 0x2AF9 [message] => [Microsoft][ODBC Driver 17对于 SQL Server]TCP 提供程序:错误代码 0x2AF9) [2] => 数组 ([0] => 08001 [SQLSTATE] => 08001 [1] => 11001 [code] => 11001 [2] => [Microsoft] [适用于 SQL Server 的 ODBC 驱动程序 17]在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。请检查实例名称是否正确以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。[消息] => [Microsoft][ODBC Driver 17 for SQL Server]与网络相关的或与 SQL Server 建立连接时发生特定于实例的错误。服务器未找到或无法访问。检查实例名称是否正确以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。 ) )

【问题讨论】:

    标签: sql-server azure ssms database-connection connection-string


    【解决方案1】:

    您的应用服务托管在 Azure 中,因此它位于 Azure 网络中,并且您正在尝试连接到组织网络内的数据库服务器(因为您表示它是本地部署的),因此除非您配置组织防火墙要允许 db 服务器正在侦听的端口上的入站连接,将不会建立连接。如果您的 SQL Server 使用默认端口,则需要在端口 1433 上允许入站。

    更新:作为替代方案,如果解决方案必须不需要更改防火墙,那么Hybrid Connections 是合适的。

    【讨论】:

    • 谢谢,确实是另一种选择。但是,我们希望尽可能安全地维护我们的防火墙。为了做到这一点,我正在考虑通过 VNET 直接创建与服务器的私有端点连接,但它需要更高的应用服务计划,你认为它值这个价吗?
    • 如果您使用过Hybrid Connection,您可以将其与定价进行比较,这是另一种不需要更改防火墙的替代方案。
    • 原来我用的是混合连接,谢谢建议。
    • 太好了,更新了我的答案,你现在可以accept它了。
    猜你喜欢
    • 1970-01-01
    • 2020-09-29
    • 2020-01-08
    • 2013-08-08
    • 2020-04-13
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多