作为一个城市的SQL Server数据库pipe理员,我已经工作了两年。 我被引入来支持现有的DBA,所以我慢慢地把所有的东西都拿进来,一直在努力工作,试图在组织中赢得信誉。 是时候处理最棘手和最重要的问题了:安全。 我们的主服务器是SQL 2005的故障转移群集。 它拥有166个数据库。 它为大多数应用程序提供了550个左右的应用程序池连接,因此可以轻松支持数千个用户。 我们还为公共网站提供相当数量的stream量。 供应商应用程序,内部应用程序,访问后端 – 与一些关键应用程序相当多种。 许多开发人员拥有生产权限 RFCstream程之外正在进行更改,我们不知道开发人员正在更改哪些数据。 他们也喜欢在系统的实现过程中拥有生产访问权限 – 我也想停下来。 有这么多的应用程序运行,任何理智的DBA会locking服务器 。 你将如何从一个开放的安全开发团队过渡到一个更严格的环境? 我正在制定一个紧急请求系统,让他们在有限的时间内访问他们的数据库。 这将使我们审计访问和ddl更改。 希望这不会被使用 – 因为这意味着我们没有回应一个页面。 它将使用HTTP,encryption的webconfig,屏幕上的login/密码(不是电子邮件),请求限制到每12小时3。 login时,我们也会被分页。 有关这种types的系统的任何警告? 我所看到的主要风险是,如果用户的ntlogin受到了损害,那么他们的数据库也是如此。 我们现在有这个漏洞,因为他们总是有权访问,但是永远不知道是否发生了。 编辑:开发和分期是强大的系统与8核心和8GB内存。 规划如何实施prd to stg复制机制,开发人员可以在其数据库不是大规模且不包含敏感信息的情况下运行。 pipe理是支持的。 如果我们能在紧急情况下保证他们的通行,他们最大的担心就是照顾好。 另一个问题可能是在实现过程中获得生产 – 我宁愿不给。 我们可以练习先行升级,并在上线期间进行testing和修复 – DBA将迁移到prd。
你们有没有一步一步的types链接执行SQL Server 2005性能审计? 像这样的链接将是伟大的,但对于SQL Server 2005。
我有一台运行SQL Server 2005的服务器。我每晚进行完整备份,每15分钟备份一次事务日志。 这是一个相对较小的服务器,所以我没有做任何差异备份。 如果其中一个夜间完整备份失败,那么数据库是否可以使用前一夜的备份以及两天中的所有事务日志进行恢复,或者是否缺less完整备份会出现问题?
我正在向用户分配一个新的数据库。 用户作为默认的dbo用户与将其作为db_ownerangular色成员进行login相比有什么不同?
比方说,我有一个SQL Server数据库,其数据文件的初始大小为100 GB,但只包含10 GB的数据。 数据库备份将只有10 GB的大小。 我想将这个备份恢复到不同的服务器(或同一台服务器上的不同数据库),但我不希望它与原来的(100 GB)磁盘空间相同,这是默认情况下会发生的情况。 在进行备份之前,我无法收缩原始数据库(这是一个生产数据库, 需要预先分配的空间)。 恢复完成后,我可以收缩恢复的数据库,但是我真的希望不要占用100 GB的空间; 此外,在这个特定的情况下,我没有太多的可用磁盘空间,所以还原不会在任何地方。 有什么办法可以恢复数据库,并且只占用与其包含的实际数据一样多的空间 ?
几个月前我们在Windows 2008 R2的虚拟帐户“ NT Service \ MSSQLSERVER ”下安装SQL Server 2012,都很好。 几天前,IT部门的一个pipe理员在SQL Server 2012中安装了全文search组件(问题是他无法记得他在安装过程中select的是什么设置),之后出现了很多问题: 答:我们检查了Windows日志,在Application中,我们发现MSSQLServer有相当多的exception日志,如: SQL Servernetworking接口库无法为SQL Server服务注册服务主体名称(SPN)[MSSQLSvc / FooComputer.FooDomain.com:1433]。 Windows返回代码:0xffffffff,状态:63.注册SPN失败可能会导致集成身份validation使用NTLM而不是Kerberos。 这是一条信息消息。 如果身份validation策略要求使用Kerberos身份validation,并且尚未手动注册SPN,则只需进一步操作。 这似乎是原因,但不知道为什么以及如何解决它。 B.域名用户(如“MyDomain \ FooUser”)的所有者的SQL作业将失败,并显示以下消息: 工作失败了。 无法确定作业JOBNAME的所有者(MyDomain \ FooUser)是否具有服务器访问权限(原因:无法获取有关Windows NT组/用户'MyDomain \ FooUser',错误代码0x6e [SQLSTATE 42000](错误15404))的信息。 我们进行了大量的search,最后用“sa”取代了所有者,并解决了问题,尽pipe这并不合适。 不过,我们想知道为什么。 C.不能像其他计算机中的文件夹那样访问networking资源,例如,下面的sql将返回“access is denied”: DECLARE @CopyCommand nvarchar(1000) set @CopyCommand = 'dir ' + Char(34) + '\\FooComputer\FooFolder\' + Char(34) EXEC […]
我有一台安装了8GB内存的Windows 2008 x64服务器。 任务pipe理器和资源监视器都坚持认为7.5GB的RAM正在使用中。 但是,进程(内存专用字节)下的内存列表不会加起来。 我确实有所有用户的显示进程检查,并添加我提出了约3.5GB的RAM的数字。 我还查看了SysInternals Process Explorer的最新版本。 私人字节或工作集合中使用的RAM总数不超过3.5GB。 这是怎么回事? ===== 更新 :我退回了服务器,看看内存利用率会发生什么。 引导和正常的操作开始后,坐在3GB的RAM使用。 18个小时之后,它的备份速度达到了6.8GB,而没有指出附加的3.5GB内存在哪里。 以下是资源监视器和任务pipe理器截屏的链接: 资源监视器 任务pipe理器 更新2 :那么,我相信我find了问题。 当我从我的sql服务器上分离出一个较大的数据库时,显示为“正在使用中”的ram数量急剧下降。 内存专用字节计数几乎没有移动。 所以我猜测,SQL服务器有一些分配内存的方式,它并不真正显示在任何监视器中。 我进一步创build了一个新的数据库文件,然后从我分离的那个数据库中转移了所有的数据。 即使它具有相同的数据,并且通过相同的事务处理,正在使用的内存也一直很低。 也许在DB有一些腐败? 我会把它留给DB神,去寻找另一个“问题”;)
我对鬼魂清理过程的理解是,每五秒钟它就会去除一个索引中的鬼影logging。 所以它不会使系统过载,一次只能“清理”大约十页。 那么,这意味着它每五秒只能清理大约80K的logging? 看起来像我的索引总是会充满幻影logging,清理永远不会完成。 所以,假设我运行了一个删除操作(可能是一百万行),这些数百万行的索引logging大小约为8Gb。 大约是80k的10万倍。 这是否意味着鬼魂清理过程将花费50万,或者将近六天才能完成? 显然我在这里错过了一些东西,因为清理幻影logging需要很长时间是没有意义的。 那么其他的活动也是如此呢? 幽灵清理过程是否导致等待,或者必须等待其他过程? [我们在OpsMgrDW中看到的性能问题带来了这个问题,我们想更多地了解这个过程]
免责声明:我知道这个问题以前已经被问过一百次了,但是我只是想检查一下,在我继续之前,我可能已经错过了一个更简单的解决scheme,并且写了很多代码。 我们的软件使用最初为SQL Server 7devise的数据库,因此,所有创build它的脚本都不会为任何字符列指定任何明确的归类。 相反,当数据库创build/还原到SQL Server 2000或更高版本时,每个列都会inheritance数据库归类(恰好是SQL_Latin1_General_CP1_CI_AS因为这是SQL Server 7的默认值)。 从理论上讲,这并不重要,因为如果我们的数据库是从客户的服务器上重新创build的,它会inheritance客户的服务器sorting规则(通常是现代安装默认值Latin1_General_CP1_CI_AS ),一切正常。 但是,这种情况在向我们发送数据库备份时发生故障,或者我们向他们发送数据库备份,并且无论代码何时尝试访问临时表等,我们或他们都会遇到可怕的sorting规则不匹配错误。 我们已经尝试教育客户安装或重build他们的SQL Server实例来使用我们首选的sorting规则,但是这当然并不总是会发生,并不总是可能的。 涉及到创build新数据库和复制数据的解决scheme对于我们来说并不实际,我们需要一个“魔棒”,我们可以在实时数据库中进行波动,以便在不影响数据的情况下就地校正所有列。 我正在考虑编写一个实用程序来做到这一点,但由于这将是一个相当大的工作,有没有人有任何简单的build议?
我有一些“旧”服务器或服务器名称与打字错误,不断显示在SQL Serverpipe理工作室的“连接到数据库”对话框中的服务器下拉列表中: 这些名字在哪里存储? 有什么办法来清理这个列表并删除一些条目吗?