我有一个问题,并不知道如何处理它。 我在Windows 2008 R2服务器上有一个SQL Server。 这个SQL Server 2005被用于从位于Internet上其他地方的另一个SQL Server接收数据库订阅。 我有通过防火墙打开的SQL服务器端口,但在范围内,我已经进入了其他SQL Server的IP。 这样做我希望通过该端口的连接请求不会到达SQL Server,除非这些请求来自其他SQL Server(其IP列在防火墙规则中的范围中)。 但是,当我看到日志时,有数以百计的“login失败的用户sa”条目(他们每过一秒钟都会到来)。 看来有些黑客正在蛮横猜测用户的sa密码。 但问题是,为什么Windows让这些请求到达SQL Server,即使它们不是来自防火墙范围中列出的IP地址? 什么是保护这个SQL Server的正确方法。 除了其他SQL Server的IP需要连接到此SQL Server之外,没有其他IP。 编辑 – 更多信息: 我在不同的机器上运行SQL Server端口上的telnet。 除非从防火墙范围内特别提到的机器运行,否则Telnet将失败。 所以看来,防火墙阻止的SQL Server端口罚款。 但是,那么为什么我看到这些失败的login请求从SQL Server日志中的不同IP地址用户“sa”? 黑客是否有可能通过端口80进入机器,然后以某种方式尝试连接到SQL Server? 80和443港口向所有人开放。 所有其他端口都closures,但sql服务器端口除外(只对一个特定的IP打开)。 Web服务器在端口80上没有任何东西可以导致访问者访问SQL服务器。 实际上,Web服务器中只有一个index.html(纯粹的HTML,没有连接到SQL)文件。 这只是一个testing服务器,可供将来使用。 只在SQL Server中testing数据。 编辑: 我打开了防火墙跟踪,以包括丢弃和成功的连接。 现在正在追查一切。 然后我去SQL Server日志,在那里我看到来自中国不同的IP地址的这些失败的login尝试。 但是在防火墙日志中没有这些IP地址的条目。 这怎么可能? 他们可以完全绕过防火墙到SQL服务器吗? 如果假设某些防火墙端口是可以打开的,则防火墙日志应该显示该IP地址的条目。 我完全失去了。
我想在我的本地机器上做一些testing,这要求我把这个date提前一年。 所以我可以在SQL Server中testing一些东西(我发现它不可能覆盖SQL Server的时间)。 然而,因为我连接到一个域,我相信这是导致时间重置为正常后,我试图覆盖它的一些时刻。 我知道这对于本地和域名时间来说可能很重要,但是是否可以暂时阻止时钟重置? 断开networking连接不是一种select,因为我需要互联网连接。 如果有一个手动的方法来阻止时间重置,可能的reprocutions是什么? 我不想在networking上搞砸任何事情:-)
我知道SQL Server 2008 R2 Express仅限于1个CPU和10 GB数据库。 现在还不清楚微软是否会把这些数字反弹到2012年。我看了几个地方,但是我还是没有一个清晰的想法。 是的,我知道2012年还没有发布,但我不得不承认它的软件性能要求已经确定。
从备份还原SQL数据库是否从头重build其表和索引? 还是保持它在备份时的内部物理顺序? 我们使用SQL 2000与Quest Lightspeed压缩备份,如果这有什么区别的话。
我没有看到在SQL Server 2005中安排夜间备份的内置机制。哪些工具可用来执行此任务以及它们的可靠性如何?
我们有一个SQL 2000数据库。 服务器由于RAIDarrays故障而崩溃。 现在当我们运行DBCC CHECKDB时,我们得到一个错误,在9个页面中有27个一致性错误。 当我们在这些页面上运行DBCC PAGE时,我们得到这个: Msg 8939, Level 16, State 106, Line 1 Table error: Object ID 1397580017, index ID 2, page (1:8404521). Test (m_freeCnt == freeCnt) failed. Values are 2 and 19. Msg 8939, Level 16, State 108, Line 1 Table error: Object ID 1397580017, index ID 2, page (1:8404521). Test (emptySlotCnt […]
我想将SQLite服务器与SQL Server 2008服务器“链接”。 例如使用sp_addlinkedserver命令。 我如何做到这一点? 我搜查了很多,但没有find解决这个问题的方法。 我发现的最接近的尝试是: http://www.sqlservercentral.com/Forums/Topic866972-149-1.aspx –################################################################################################# –Linked server Syntax for SQLite –using OLE provider C:\Program Files\Cherry City Software\SQLiteProvider\SQLitePV.dll –from http://cherrycitysoftware.com/ccs/Download/Download.aspx –################################################################################################# DECLARE @server sysname, @srvproduct nvarchar(256), @provider nvarchar(256), @datasrc nvarchar(100), @location nvarchar(100), @provstr nvarchar(100), @catalog sysname, @sql varchar(1000) –add an SQLite Database as a linked server SET @server = N'mySQLite' SET @srvproduct […]
用户需要SHOWPLAN权限才能使用“执行计划”调整查询。 这个许可的含义是什么? 授予用户安全吗? 我已经看到了这里的安全说明,这不关心这个用户。 还有其他问题需要注意吗? 从我所看到的,即使在生产数据库上,给用户这个权限似乎也不是问题。 谢谢您的帮助!
有没有人遇到以下问题,并find了解决办法: 我们网站后端的很大一部分是MS SQL Server 2005.每周或两周,网站开始运行速度较慢 – 而且我发现在SQL中查询花费的时间越来越长。 我有一个我喜欢使用的查询: USE master select text,wait_time,blocking_session_id AS "Block", percent_complete, * from sys.dm_exec_requests CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2 order by start_time asc 这是相当有用的…它提供了在这个时候对你的SQL服务器运行正确的一切的快照。 有什么好处的是,即使你的CPU因为某种原因被挂在100%,活动监视器拒绝加载(我敢肯定你们中的一些人已经在那里),这个查询仍然会返回,你可以看到什么查询正在杀死你的数据库。 当我运行这个或活动监视器在SQL开始放缓的时候,我没有看到任何具体的查询导致这个问题 – 他们都在全线运行速度慢。 如果我重新启动MS SQL服务,那么一切都很好,它加快了速度 – 一两个星期,直到它再次发生。 没有什么我能想到的,但是这只是几个月前才开始的…想法? – 添加 请注意,当数据库减速发生时,如果我们每小时(每天繁忙的时间)获得100K页面浏览量,或者每小时(慢时间)10K页面浏览量,那么查询所需的时间比正常时间更长,这并不重要。 服务器并没有真正承受压力–CPU不高,磁盘使用似乎没有失控…感觉像索引碎片或类似的东西,但似乎并不是案件。 就粘贴上面查询的结果而言,我真的不能这么做。 上面的查询列出了执行任务的用户的login名,整个查询等等。我真的不喜欢在网上发布我的数据库,表格,列和login名:)…我可以告诉你当时正在运行的查询是正常的,我们网站的标准查询一直在运行,没有任何规范。 – 3月24日 自从上次重新启动以来已经过了大概两周了。 我做了一些改变:我发现了一些查询,在这些查询中我们大量使用了完全没有必要的临时表,并让我们的开发人员改变了他们的做法。 我将一些不断(缓慢但确定地)增长的数据库的大小调整为一个智能的增长数据库。 我调整了一切的自动增长设置,以更聪明(他们都被设置为1MB增长)。 最后我清理了一下MSDB。 我们做日志传送,并且确实不需要保存好几年和几年的备份点,我写了一些脚本,只保留了几个月。 我会不断更新这个线程,因为现在还不知道问题是否已经解决了。
TL;博士 我有一个多实例SQL Server上的专用IP地址和端口(162.xxx.xxx.51:1433)的SQL Server实例(SQLSERVER01-i01)(Windows Server上的每个SQL Server实例都有自己的IP地址)全部运行在一台Windows服务器上(SQLSERVER01 / 162.xxx.xxx.50)。 我还有一个专用的具有自己的IP地址和端口(168.xxx.xxx.71:1433)的Reporting Services实例(SQLSERVERRS01-i01),该实例运行在具有自己的IP地址的不同Windows服务器(SQLSERVERRS01)上.xxx.xxx.70)。 专用的Reporting Services服务器具有应用程序APPL1 ,可以通过http://SQLSERVERRS01-i01:80/Reports_APPL1或通过http://SQLSERVERRS01:80/Reports_APPL1 。 由于主机报头的Reporting Servicesconfiguration中的*:80configuration,SSRS将select这两个请求。 我们在每个IP范围之间都有多个防火墙,这意味着我们必须为每个IP到IP或IPrange到IP的连接申请一个特定的规则。 但是,如果涉及两台服务器,则安全性要求防火墙始终必须是IP到IP的规则。 题 (基于屏幕截图进一步下降) 当Reporting Services服务器连接到SQL Server实例(位于162.xxx.xxx.51)以检索数据时,是否始终会与Windows服务器的基础IP地址(168.xxx.xxx.70 / preferred)build立连接)SSRS正在运行,还是将(有时)使用SQL Server Reporting Services实例的IP地址(168.xxx.xxx.71)? 这与使用IP到IP方法的防火墙规则的configuration相关。 我将要么申请一个规则,通过端口1433或168.xxx.xxx.70到162.xxx.xxx.51连接定义一个168.xxx.xxx.71到162.xxx.xxx.51连接港口1433。 目前我会申请两个防火墙规则。 奖金问题 我可以configurationReporting Services服务器与专用IP地址进行通信吗? 在这种情况下与168.xxx.xxx.71地址。 解决scheme我不是在找 我不是在寻求如何优化防火墙configuration或如何为我们的networking实施分区概念的build议。 (它已经在pipe道中)。 另外,我对反馈表示不感兴趣,build议在同一台服务器上安装SQL Server和SSRS可以解决我的问题。 我知道,很乐意这样做,但需要与SSRS组件一起运行的第三方软件。 有用 如果我在SSRS和SQL Server实例之间应用两个防火墙规则,我的configuration工作。 168.xxx.xxx.71 –> 162.xxx.xxx.51 : 1433 168.xxx.xxx.70 –> 162.xxx.xxx.51 : 1433 我想安全地减less一个防火墙规则,并确保一切仍然有效。 […]