等保测评:SQLServer操作超时

2023-10-27

一、说明

本文说的是等级保护1.0中SQLServer数据库操作超时的内容,实际在SQLServer中有很多种超时选项,很容易将其混为一谈,本文将尽力将之说清楚。

二、操作超时的意义

操作超时在sqlserver数据库中可能包含好几个意思:

2.1. 客户端连接数据库时的连接超时时间

就是指在客户端连接数据库时,如果在限定时间内数据库没有回应,则返回失败的结果,其中的时间。

值得注意的是,此项是由客户端来指定而非数据库,更具体的来说,是在数据库连接字符串中,以C#为例子:

server=.;database=myDB;User ID=sa;Password=password;Connect Timeout=500

复制

其中的Connect Timeout即为连接超时时间,单位为秒。也就是说,连接超时时间不仅是由客户端指定,而且还具体到某次连接当中,很简单,如果客户端下次发来的连接字符串把Connect Timeout的值改了,自然这一次的连接超时时间也就改了。所以,这里和主机的超时是有些不一样的,主机的超时是在主机中进行设置(无论linux还是windows),由主机决定而不是连接主机的终端决定。

通常我们用SQL Server Management Studio来管理sqlserver数据库,其本质就是一个可以连接数据库的软件而已。

它的原理大概应该是这样:

让用户选择好验证方式(windows验证还是sqlserver验证),输入用户名和口令(如果是sqlserver验证的话),然后你自己通过用户的操作生成相应的连接字符串,连接上数据库,并将此连接字符串进行保存。

成功后保存用户的输入(如用户名和口令)在代码中,如用户进行其他查询(通过点击或者输入sql语句),再使用先前保存的连接字符串,再和数据库连接一次,并执行相应的命令。因为不大可能从头到尾就用一个连接来搞定,所以应该是每执行一次操作就连接一次,只不过除第一次连接(登陆)时需要用户进行输入用户名和口令,其余的连接用户就不需要再次输入了。

这个过程我相信只要是编写过和数据库有交互的软件的人,都能看明白的。

好,那么SQL Server Management Studio有没有地方可以设置连接超时时间呢?

有,就是在登录界面中,而且还能直接手写连接字符串:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8qBJmUPl-1678986948947)(https://ask.qcloudimg.com/http-save/yehe-1268449/knmy3ts7qi.jpeg?imageView2/2/w/2560/h/7000)]

img

2.2. 客户端执行某项sql语句的超时时间

连接数据库后,对数据库进行某项操作(查询、修改、删除、插入),如果在限定时间内没有返回结果,则此次操作失败并中断连接,其中的时间。和连接超时差不多,也是由连接数据库的客户端进行指定,以C#为例子的话,是在代码中对SqlCommand对象的CommandTimeout属性进行设置。

而在SQL Server Management Studio中有两个地方可以进行设置:

登陆界面中 注意,这个是全局设置,估计会用一个全局变量将执行超时值存储起来,每次在SQL Server Management Studio中执行sql语句时,会使用该全局变量进行设置。

img

每次新建查询后的查询选项

点击新建查询后,会新建一个查询,该查询的执行超时值会使用全局变量的执行超时值进行初始化,当然,你也可以自己再进行改动,改动后仅对这个查询有效。

img

img

img

2.3. 数据库连接远程数据库的超时时间

这里说的是remote login timeout,也就是初级教程中让我们查的值:

img

这个值是什么意思呢?

我们对sqlserver数据库执行sql语句如查询语句,往往是对一个数据源(数据库)进行查询,而当我们涉及到另一个远程数据源(数据库)的时候,就需要对远程数据源进行连接(登陆),而我们可以通过链接服务器实现这个功能。

通过链接服务器,SQL Server 数据库引擎 和 Azure SQL 数据库托管实例可从远程数据源中读取数据,并针对 SQL Server 实例之外的 OLE DB 数据源等远程数据库服务器执行命令。

在msdn中,remote login timeout的说明如下:

remote login timeout 选项指定从登录远程服务器失败返回前等待的秒数。例如,如果您尝试登录到一个远程服务器而该服务器已关闭, remote login timeout 帮助确保您在计算机停止登录尝试前不必无限期地等待下去。此选项的默认值为 10 秒。如果该值为 0,则允许无限期等待。

比如类似语句就会使用链接服务器:

SELECT * FROM [WIN-CGQ89NM7L8J,15478].master.sys.objects

复制

remote login timeout的意思是指你现在连接的这个数据库,它去连接远程数据源时,相应的连接超时时间。也就是说,这里并不是对SQL Server Management Studio这个客户端软件进行设置,而是对你现在连接的这个sqlserver数据库本身进行设置。

所以我们要进行区分,同样是在SQL Server Management Studio上进行一些设置,有些是对这个软件本身的一些项进行设置(如连接超时值等),而有些则是对你连接的这个数据库的一些项进行设置(如remote login timeout)。

我们既可以通过sql语句对remote login timeout进行设置,也可以在SQL Server Management Studio界面中进行设置:

img

这两者是等价的,或者说,界面中的远程登录超时值本来就是从数据库中查出来的。

到这里我们可以知道,这个值其实并不符合初级教程中的说明,从描述上看,初级教程是希望对SQL Server Management Studio的空闲时间进行限制,就是长时间不操作SQL Server Management Studio后,SQL Server Management Studio会让你重新输入用户名和口令或者自动退出的功能。

2.4. 数据库的远程执行超时时间

也就是remote query timeout,和remote login timeout差不多一个意思:

remote query timeout 选项指定在 SQL Server 超时之前远程操作可以持续的时间(秒)。此选项的默认值是 600,即允许等待 10 分钟。

查询方法也有两种(sql语句和图形界面):

sp_configure 'remote query timeout'

复制

img

img

2.5. 某连接的空闲超时时间

当某连接的空闲时间超过一定限制时将其断开,但是sqlserver数据库本身没有这种设置项,SQL Server Management Studio对自己的某个连接也没有这种设置项。要实现这个功能,需要自己写一个定时任务来解决(来源于网上):

DECLARE @sql NVARCHAR(MAX)
SET @sql=''
SELECT @sql='kill '+LTRIM(spid)+';' FROM sys.sysprocesses AS s
    WHERE s.spid>50                                --不是系统进程
    AND s.spid<>@@SPID                            --不是当前进程
    AND s.last_batch<DATEADD(HOUR,-4,GETDATE())    --最后执行时间是4小时之前
    AND s.program_name='Microsoft SQL Server Management Studio' --从客户端连接
--输出要执行的SQL
PRINT @sql
--执行动态SQL
EXEC(@sql)

复制

不过我感觉还是有点问题,last_batch能不能代表最后执行操作的时间,还未能确认。

2.6. SQL Server Management Studio的空闲超时时间

这个其实就是初级教程希望达到的一个目的。

每次SQL Server Management Studio对数据库执行操作,比如你新建一个查询,其本质就是新连接了数据库一次。当然可能SQL Server Management Studio会在某些地方连上数据库就不断开了,一直使用这个连接。但更大概率应该是用完就断,用的时候再连(具体我也不清楚,因为我不知道它代码里怎么实现的),所以连接的空闲超时时间的意义其实并不很大。

而长时间不操作使得SQL Server Management Studio自动退出或者让你重新输入用户名和口令这种设置,应该是没有的,至少我没找到这种选项。这个设置和数据库其实没有任何关系,就是看SQL Server Management Studio本身有没有提供这种配置项而已。

所以,如果非要实现这个功能的话,其实也可以。

nt Studio自动退出或者让你重新输入用户名和口令这种设置,应该是没有的,至少我没找到这种选项。这个设置和数据库其实没有任何关系,就是看SQL Server Management Studio`本身有没有提供这种配置项而已。

所以,如果非要实现这个功能的话,其实也可以。

一个方法是通过编写SQL Server Management Studio的插件,说不准可以实现相关功能。另一个就是不用SQL Server Management Studio管理sqlserver,你自己编写一款类似的软件,然后自己加上这个功能。

网络安全基础入门需要学习哪些知识?

网络安全学习路线

这是一份网络安全从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!

img[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v19T846c-1677167179814)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]编辑

阶段一:基础入门

img[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sRoDZu4K-1677167179814)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]

网络安全导论

渗透测试基础

网络基础

操作系统基础

Web安全基础

数据库基础

编程基础

CTF基础

该阶段学完即可年薪15w+

阶段二:技术进阶(到了这一步你才算入门)

img[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-il25GFVz-1677167179815)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]

弱口令与口令爆破

XSS漏洞

CSRF漏洞

SSRF漏洞

XXE漏洞

SQL注入

任意文件操作漏洞

业务逻辑漏洞

该阶段学完年薪25w+

阶段三:高阶提升

img[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ITOSD3Gz-1677167179816)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]

反序列化漏洞

RCE

综合靶场实操项目

内网渗透

流量分析

日志分析

恶意代码分析

应急响应

实战训练

该阶段学完即可年薪30w+

阶段四:蓝队课程

img[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SKCwwld2-1677167179818)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]

蓝队基础

蓝队进阶

该部分主攻蓝队的防御,即更容易被大家理解的网络安全工程师。

攻防兼备,年薪收入可以达到40w+

阶段五:面试指南&阶段六:升级内容

img

需要上述路线图对应的网络安全配套视频、源码以及更多网络安全相关书籍&面试题等内容

< img src=“https://hnxx.oss-cn-shanghai.aliyuncs.com/official/1678694737820.png?t=0.6334725112165747” />

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

等保测评:SQLServer操作超时 的相关文章

随机推荐

  • 智慧电塔倾斜在线监测解决方案

    一 方案背景 我国科技的不断进步 电塔的建设正在飞速发展 由于高压线路途经地域环境复杂 在运行过程中往往会受到多种因素的影响导致电塔变形 倾斜 倒塌 造成巨大的经济损失 因此需要电塔倾斜监测系统来预防此类事件的发生 智慧电塔倾斜监测解决方案
  • LightOJ 1220 Mysterious Bacteria

    Problem LightOJ 1220 Mysterious Bacteria 题意 输入一个 x 2 lt x lt 2 32 求满足 x b p 的最大的 p x b p都是整数 暴力版 枚举b或者枚举p 然后求另外一个 枚举b只要从
  • GLTF编辑器:在线模型材质编辑工具

    GLTF 编辑器 是一个功能强大 易于使用的在线3D模型编辑和查看工具 它支持多种格式的3D模型导入并将模型导出为GLB格式 除了可以对3D模型进行基本属性的修改之外 还支持对模型原点重置以及模型材质纹理修改 对于3D开发者和设计师来说 G
  • 简易聊天室代码分享 js+socket.io

    先言 这我以前写的 这里就是单纯分享下代码 不算正经文章 效果如下 前端用一个单html文件 然后后端用node js和socket io 也是只用一个单js文件就好 这里可以看下代码的实现逻辑就好 因为来连数据库才能运行的 有需要的话告诉
  • java2习题3

    1 编写应用程序求1 2 10 1 用for和while循环语句进行1 2 10 的计算 package yingshu public class one public static void main String args TODO A
  • Mybatis——基础使用学习

    Mybatis 基础使用学习 1 简介 1 1 什么时Mybatis 1 2 持久化 1 3 持久层 1 4 为什么需要Mybatis 2 第一个Mybatis程序 2 1 搭建环境 2 2 创建一个模块 配置好mybatis 2 3 编写
  • Eclipse导入maven项目Pom.xml文件报错处理方法

    文章转载自 https blog csdn net jianzhonghao article details 72858465 Eclipse导入maven项目时 Pom xml文件报错处理方法 导入maven项目 FIle Import
  • css实现分页效果

  • 设有n项任务,加工时间分别表示为正整数t1,t2,...,tn。背包问题系列

    设有n项任务 加工时间分别表示为正整数t1 t2 tn 现有2台同样的机器 从0时刻可以安排对这些任务的加工 知道T时刻所有任务完成 总加工时间为T 设计算法使得总加工时间T最小的调度方案 设给定的实例 t1 1 t2 5 t3 2 t4
  • linux学习(五)解决github网页无法进入

    文章目录 前言 1 问题 2 解决 前言 准确来说这个内容不属于linux学习 但是使用git管理代码时需要用到 这里就提前准备一下 1 问题 github网页无法刷出来 一直转圈 2 解决 step1 找到C Windows System
  • 取整函数_6个Excel取整函数技巧,让你的数据规规矩矩!

    Excel技巧是十分神奇的 可以用来娱乐 也能用来工作 更重要的是可以工作效率 不管是在什么地方 最不讨人喜欢的就是有小数点的数据 那怎么办了 今天就来教给大家6个超简单又很实用的Excel取整函数 1 CEILING 函数取整 CEILI
  • windows10编译open3d 0.13

    目录 写在前面 准备 获取源码 cmake cmake版本 开始cmake 1 命令行 2 cmake gui 编译 安装 测试 完 写在前面 1 环境 win10 visual studio2019 cmake3 22 0 rc1 下载源
  • C语言浮点数存储规则

    1 浮点型数据类型 float double long double 目前常用的类型为float 用于存储单精度浮点数和双精度浮点数 浮点数使用IEEE 电气和电子工程协会 格式 浮点类型的32位浮点数具有 4 个字节 包括一个符号位 一个
  • 【FPGA学习】状态机实现UART通信

    文章目录 前言 一 数据帧结构 二 接收模块 2 1 状态设置 2 1 状态跳转 2 2 奇校验 2 3 数据输出 三 发送模块 3 1 状态跳转 3 2 数据输出 四 顶层模块 总结 前言 在之前的文章中 FPGA学习 实例一 Cyclo
  • 7、Java入门教程【面向对象】

    面向对象是Java编程的核心概念 如果不能充分了解面向对象的思想 那么会给你在实际的项目开发过程中 带来很多业务设计上的困扰 一 构造器 我们在设计完一个类 在使用这个类去创建对象实例的时候 有些场景是需要对实例做初始化操作的 那么Java
  • 雅思备考资料整理

    单纯想整理一下自己使用过的素材 梳理一下自己学习到的经验 万一以后还需要考呢 一 听力 何琼听力网课 王陆语料库 王陆建议听写前先过一遍单词 进行同义词整理 听写到后面几章速度很快 写下来很耽误时间也跟不上 我是边听脑子里就同时反应单词怎么
  • java自定义数组_java创建自定义类的数组

    今天在学图论的最小生成树 开始一直在想是用邻接矩阵还是关联矩阵来表示图 但是发现这样都会有好多空间浪费 于是我就自定义一个边的类 里面包含了权值 关联的端点1 端点2 和图的表示字母 发现我想创建11条边 Bian new Bian 11
  • 第6章 K8s基础篇-资源调度

    杜宽老师k8s课程学习记录 6 1 Replication Controller和ReplicaSet Replication Controller 复制控制器 RC 和ReplicaSet 复制集 RS 是两种简单部署Pod的方式 因为在
  • python全栈开发优势条件_Python全栈开发-day01-初识python

    一 Python学习的大致框架 1 linux基础 计算机以及日后我们开发的程序放置的服务器的简单操作 2 Python开发 1 Python基础 2 网络编程 断点续传 一般情况下不需要我们自己开发 3 web框架 用于写网站 4 设计模
  • 等保测评:SQLServer操作超时

    一 说明 本文说的是等级保护1 0中SQLServer数据库操作超时的内容 实际在SQLServer中有很多种超时选项 很容易将其混为一谈 本文将尽力将之说清楚 二 操作超时的意义 操作超时在sqlserver数据库中可能包含好几个意思 2