azure不支持哪些语句 sql_Azure SQL 数据库常见的连接问题

Azure SQL 数据库常见的连接问题

06/27/2017

本文内容

这篇文章总结了常见的 Azure SQL 数据库连接失败的情况,主要分为 5 大类,旨在帮助用户或企业数据库管理员排查数据库连接异常的问题。

问题一:连接字符串问题

错误的 login 或密码

如果在连接数据库的时候输入了错误的 login 或者密码,那么通常我们会看到如下报错:

这时可以检查一下连接字符串或者 SSMS 客户端输入的 login 和密码是否正确。

错误的服务器名称

在遇到下面这种报错信息的时候,需要检查一下是否是服务器名称输入有误。

问题二:Login/User 权限问题

如果使用的 Login 并没有访问目标数据库的权限,那么在尝试直接连接到这个数据库或者连接到 master 数据库后展开这个数据库的时候就会遇到下面这个错误:

这时候需要根据情况为这个 Login 创建一个 User,然后赋予这个 User 访问数据库的权限;或者直接更换一个有访问权限的账号进行连接。下面的例子是如何创建一个名为 testlogin 的 Login 并且赋予对数据库 testdb 的 read 权限:

--在 master 数据库下运行语句,创建名为 testlogin 的 Login

CREATE LOGIN testlogin WITH password='Pass@word1';

--切换到 testdb 数据库,创建名为 testuser 的 User

CREATE USER testuser FROM LOGIN testlogin;

--给新建的 testuser 添加 read 权限

EXEC sp_addrolemember 'db_datareader', 'testuser';

问题三:防火墙设置问题

IP 地址不在允许列表中

如果发起连接的客户端 IP 地址不在 Azure SQL Database 的 IP 允许列表中,那么连接会失败。这时候需要登录到 Azure 管理门户中添加相应的防火墙规则。

在客户端和 Internet 之间的所有防火墙上面,确保 1433 端口的出站链接(outbound connection)是开放的。

对于部署在 Azure 虚拟机上的客户端,除 1433 端口外,确保为客户端与 SQL 数据库之间的交互保留 Azure 客户端计算机上 11000-11999 和 14000-14999 的端口范围。

问题四:暂时性错误

当应用尝试连接到 Azure SQL Database 的时候,如果收到了下面的错误信息:

Error code 40613: "Database on server is not currently available. Please retry the connection later. If the problem persists, contact customer support, and provide them the session tracing ID of "

这种错误通常都是暂时性的。SQL Database 在需要动态调整硬件资源,或者有计划事件(例如软件更新)等情况下,会触发重新配置(reconfiguration),大多数的重新配置会很快完成,最多不超过 60s。针对这种暂时性的错误,可以有如下解决办法:

应用端应该做好应对这种暂时性错误的准备,很重要的一点就是添加重试逻辑(retry logic),在问题发生时进行重试而不是直接把报错抛给客户端/用户,有关重试逻辑的示例代码,可以参考:SQL Azure Connection Retry

当数据库的资源使用接近上限时,也可能造成暂时的连接问题。对于这种情况,可以通过管理门户的监控图表来及时发现资源不足的情况,根据实际需求调整服务级别。

问题五:启用了数据库表审核

在开启了Azure SQL Database Table Auditing 之后,对于下层客户端来说,需要修改连接字符串,否则会出现无法连接的情况。

备注

该问题只会出现在应用了 Table Auditing 的情况,而 Table Auditing 目前已经被弃用。对于 Blob Auditing,则不需要修改。

对于 “下层客户端”,即支持 TDS 7.3 版和更低版本的客户端 — 应修改连接字符串中的服务器 FQDN:

连接字符串中的原始服务器 FQDN:.database.chinacloudapi.cn

连接字符串中修改后的服务器 FQDN:.database.secure.chinacloudapi.cn

“下层客户端” 的部分列表包括:

.NET 4.0 和更低版本,

ODBC 10.0 和更低版本。

JDBC(JDBC 虽然支持 TDS 7.4,但不完全支持 TDS 重定向功能)

Tedious(适用于 Node.JS)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值