有没有办法通过扩展事件监控加密连接?我过去曾使用 sqlsni.TRACE 监控过 TLS 1.0、1.1 和 1.2 握手,但找不到与加密连接本身相同的内容。除非“encrypt=yes”没有添加到连接字符串中,否则只有握手会被加密,没有别的。
我可以使用 sys.dm_exec_connections 来捕获它,但这不是实时的,我必须非常频繁地运行它(每分钟或更短时间)才能找到我正在寻找的东西。
有没有办法通过扩展事件监控加密连接?我过去曾使用 sqlsni.TRACE 监控过 TLS 1.0、1.1 和 1.2 握手,但找不到与加密连接本身相同的内容。除非“encrypt=yes”没有添加到连接字符串中,否则只有握手会被加密,没有别的。
我可以使用 sys.dm_exec_connections 来捕获它,但这不是实时的,我必须非常频繁地运行它(每分钟或更短时间)才能找到我正在寻找的东西。
是的,这可以使用以下跟踪事件来完成,
“您可以从此扩展事件跟踪中找到有关实际协商 TLS 协议和密码的更多详细信息,但这需要 SQL Server 2016 SP1 或更高版本:”
” Dan Guzman的 原始答案在这里
另请注意,如果这需要在 2019 年完成,请将事件更改为
sqlsni.sni_trace
代码会像
编辑 在OP的评论之后,要求是找到连接是否加密而不是TLS。
我不知道扩展事件中的选项,但要实现这一点,您可以利用SQL Server 中的登录触发器。
sys.dm_exec_connections
以下是每次登录后捕获的尝试。请根据您的审核需要更改代码。