How to find the TLS used for the SQL Server connection

这篇具有很好参考价值的文章主要介绍了How to find the TLS used for the SQL Server connection。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文是How to find the TLS used for the SQL Server connection这篇英语文章的翻译,此文出处请见于文章底部链接:原文出处[1]

对于客户,我做了一些研究,如何找出SQL Server数据库会话连接使用了哪一种TLS协议。唯一的方式就是创建一个扩展事件,这个扩展事件有一个很大的限制就是只有SQL Server 2016或以后的版本才有。之前的版本必须使用内置诊断(BID)跟踪。

使用SQL Server 2016的查询窗口创建一个TLS监控事件之后

CREATE EVENT SESSION [TLS_monitoring] ON SERVER
 
             ADD EVENT sqlsni.sni_trace(
 
             WHERE ([sqlserver].[equal_i_sql_ansi_string]([function_name],'Ssl::Handshake'AND [sqlserver].[like_i_sql_unicode_string](,N'%TLS%')))
 
             ADD TARGET package0.event_file(SET filename=N'TLS_Monitoring')
 
             WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF);

这个扩展事件运行的很正常,我得到了一些使用TLS 1.0和TLS 1.2的会话连接结果。

之后,我想在SQL Server 2019实例上也测试验证一下,我得到了下面错误:

Msg 25623, Level 16, State 1, Line 1 The event name, “sqlsni.trace”, is invalid, or the object could not be found

经过google搜索后,我发现,在SQL Server 2019中,扩展事件sqlsni.trace已经被sqlsni.sni_trace给替换了。 我修改了我的脚本,下面是在SQL Server 2019下运行的脚本

CREATE EVENT SESSION [TLS_monitoring] ON SERVER
 
             ADD EVENT sqlsni.sni_trace(
 
             WHERE ([sqlserver].[equal_i_sql_ansi_string]([function_name],'Ssl::Handshake'AND [sqlserver].[like_i_sql_unicode_string](,N'%TLS%')))
 
             ADD TARGET package0.event_file(SET filename=N'TLS_Monitoring')
 
             WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF);

在我和客户讨论过后,他要求我在每个可用扩展事件(准确的表达应该是可以使用sqlsni.trace扩展事件)的SQL Server服务器上部署这个脚本,以便在每个SQL Server上都可以用。我编写了下面这个SQL脚本,可以通过CMS在SQL Server 2014以后版本上安装部署

-- Create SQL Server extended event to monitor TLS
 
-- Before SQL 2016, the Trace extended event is not implemented for the SNI layer. For SQL Server 2014 or 2012, you must use Built-In Diagnostics (BID) traces
 
IF (( CAST(SERVERPROPERTY('ProductMajorVersion') AS INT)  < 15) AND (CAST(SERVERPROPERTY('ProductMajorVersion') AS INT)  > 13))
 
       BEGIN
 
 -- Before SQL Server 2019 and after SQL Server 2016
 
             CREATE EVENT SESSION [TLS_monitoring] ON SERVER
 
             ADD EVENT sqlsni.trace(
 
             WHERE ([sqlserver].[equal_i_sql_ansi_string]([function_name],'Ssl::Handshake'AND [sqlserver].[like_i_sql_unicode_string](,N'%TLS%')))
 
             ADD TARGET package0.event_file(SET filename=N'TLS_Monitoring')
 
             WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF);
 
       END
 
ELSE
 
       BEGIN
 
 -- SQL Server 2019 and more
 
      CREATE EVENT SESSION [TLS_monitoring] ON SERVER
 
             ADD EVENT sqlsni.sni_trace(
 
             WHERE ([sqlserver].[equal_i_sql_ansi_string]([function_name],'Ssl::Handshake'AND [sqlserver].[like_i_sql_unicode_string](,N'%TLS%')))
 
             ADD TARGET package0.event_file(SET filename=N'TLS_Monitoring')
 
             WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF);
 
       END
 
 
 
 
ALTER EVENT SESSION [TLS_monitoring] ON SERVER  STATE = START ;
 
GO

我希望最后这个脚本可以帮助你找出TLS连接类型。

参考资料

[1]

原文出处: https://www.dbi-services.com/blog/how-to-find-the-tls-used-for-the-sql-server-connection/文章来源地址https://www.toymoban.com/news/detail-457162.html

到了这里,关于How to find the TLS used for the SQL Server connection的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql授权失败:check the manual that corresponds to your MySQL server version for the right syntax to use

    最近新部署了一个mysql,然后进入mysql 之后授权失败,然后发现原来是数据库的版本太高导致的,下面是记录如何操作的。 结果执行的时候出现报错: ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘iden

    2024年02月03日
    浏览(46)
  • How to use the Arduino-ESP32 Library as an ESP-IDF Component

    arduino-esp32 SDK ESP-IDF SDK ESP-IDF Environment Setup Guide Arduino Environment Setup Guide Arduino as an ESP-IDF component Currently, the latest Master version of the arduino-esp32 SDK requires the usage of ESP-IDF SDK environment version v4.4. For the different versions of the arduino-esp32 SDK and their corresponding ESP-IDF SDK versions, please refer t

    2024年02月15日
    浏览(64)
  • unable to connect to the server: net/http: tls handshake timeout已解决

    在自己电脑上学习k8s,使用kind安装了一个集群,过了一段时间再打开发现了一个问题。 执行 kubectl get po 的时候有报错 查了半个小时也没解决,有说内存不够,也有说要重启服务的,也有说重启docker的,关闭交换分区的,还有代理不对什么的,都没有解决我的问题,最后我试

    2024年02月13日
    浏览(54)
  • kubectl 执行时报错:Inable to connectto the server: net/http: TLs handshake timeout

    Inable to connectto the server: net/http: TLs handshake timeout 问题排查 这个错误通常表示客户端无法与服务器建立 TLS 握手,可能的原因包括服务器证书无效、网络问题或代理设置等。 以下是一些可能的解决方法: 1. 检查证书是否有效:在某些情况下,TLS 握手失败可能是由于证书过期、

    2024年02月11日
    浏览(39)
  • How to Use Glslang

    Execution of Standalone Wrapper 要使用独立的二进制形式,请执行glslang,它将打印一条使用语句。基本操作是给它一个包含着色器的文件,它会打印出警告/错误以及可选的 AST。 应用的特定于阶段的规则基于文件扩展名: vert 顶点着色器 tesc 曲面细分控制着色器 tese 曲面细分评估着

    2024年02月14日
    浏览(37)
  • vscode出现Specifies folder path to the JDK(17 or recent)used to launch the Java Language Server解决方案

      大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作

    2024年02月05日
    浏览(47)
  • how to use git sub modules

    To use Git submodules in your project, follow these steps: 1,Initialize a new Git repository for your main project if you haven’t already done so: 2,Add the submodule to your project by using the git submodule add command followed by the URL of the submodule repository and the path where you want it to be located within your project: For example, if yo

    2024年03月08日
    浏览(40)
  • 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not acc

    在用jdk 1.8的时候启动Spring Boot项目的时候,报以下错误: 通过查找资料,原来是jdk中 jdk.tls.disabledAlgorithms 如果有TLSv1、TLSv1.1、3DES_EDE_CBC,要删除才可以 JDK目录在C盘如上 改后部分代码如下: 删除后重新保存后,再运行程序,就能解决上面报错。

    2024年02月15日
    浏览(40)
  • SQL Server Management Studio弹出“cannot find one more components.Please reinstall the application”解决办法

    由于很多文件是默认存储在C盘上的,导致小编的C盘爆满,所以小编昨天清理了C盘,没想到误删了文件,导致启动SQL Server Management Studio时弹出“cannot find one more components.Please reinstall the application”的错误提示。如下图所示。 错误提示 查阅了全网资料,试过如下方法 方法一:

    2024年02月04日
    浏览(37)
  • How to use notebook in Ubuntu 22.04

    这个时候,系统会自动打开浏览器,浏览器会自动跳转到页面http://localhost:8888/tree,如下图所示: 如果我们希望停止服务运行,可以在终端窗口中按Ctrl+C,这个时候,终端窗口命令行会出现如下变化 我们再来观察notebook浏览器画面,发现没有任何变化。

    2024年02月10日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包