我打算分配一个SQL Serverlogin到 db_datareader db_datawriter 数据库angular色 。 但是,如果肚子疼和疲倦的一刻,我不小心给这个用户架构所有权,而不是: 现在忽略它在概念上意味着用户“拥有”这两个内置模式。 并忽略了现在是否甚至是一个用户拥有这两个模式的问题(例如,如果我想删除用户将内置模式去与它)。 我的问题是:我如何撤消它? 我随机打在我的键盘上的键,它出来了 : 修改模式中的ALTER AUTHORIZATION :: [db_datareader] TO [db_datareader] F5 但那没有做任何事情; 所以现在是时候咨询专家了。 Microsoft SQL Server 2005 – 9.00.5057.00(Intel X86)Mar 25 2011 13:50:04 Copyright(c)1988-2005 Microsoft Corporation Standard Edition
我们的开发人员需要能够从.Net代码启动SQL Server代理作业。 我知道我可以调用msdb..sp_start_job来做到这一点,但我不想给一般用户帐户直接访问运行作业。 我想要做的是使用WITH EXECUTE AS子句在应用程序的数据库中创build一个存储过程来模拟代理帐户。 我们拥有的程序是: CREATE PROCEDURE dbo.StartAgentJob WITH EXECUTE AS 'agentProxy' AS BEGIN EXEC msdb.dbo.sp_start_job N'RunThisJob'; END 当我们运行这个,但是,我们得到以下消息: The EXECUTE permission was denied on the object 'sp_start_job', database 'msdb', schema 'dbo'. 有任何想法吗? 这甚至是在SQL2005中做到这一点的最好方法吗?
每晚备份SQL Server 2005数据库的最佳方法是什么? 我正在寻找一个解决scheme/战略,将使数据库备份文件,并将其放置在“传出”目录。 我们希望我们的FTP软件将其移出到异地服务器。 有关如何使这项工作按需要的任何build议?
我试图想出SQL Server 2005的备份策略。我正在考虑每周进行一次完全备份,每天进行一次差异备份,每15分钟进行一次事务日志备份。 数据库大小约为50GB。 事情是,数据库是每一秒的生活。 完整的备份会干扰任何操作吗? 我是否需要特别做任何事情来使备份顺利进行而不会暂停任何数据库操作?
计数器Process(sqlservr)\% Processor Time在我的一台数据库服务器上徘徊在300%左右。 此计数器反映了SQL Server在CPU(用户模式+特权模式)上运行的总时间百分比。 这本书, Sql Server 2008内部和故障排除 ,说任何超过80%是一个问题。 这个柜台怎么可能超过100%?
我没有看到在SQL Server 2005中安排夜间备份的内置机制。哪些工具可用来执行此任务以及它们的可靠性如何?
用户需要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。 我们做日志传送,并且确实不需要保存好几年和几年的备份点,我写了一些脚本,只保留了几个月。 我会不断更新这个线程,因为现在还不知道问题是否已经解决了。
我有一个SQL 2005的安装和我的templog.ldf文件不断增长,以消耗它所在的驱动器上的所有可用空间。 有时它会停下来几MB免费,但有时会更进一步,这是我认为这种行为可能牵涉到我已经看到的一些其他问题的c驱动器。 我的问题是,我该怎么做,我可以将日志移动到另一个驱动器,但我有理由认为它不会在那里做同样的事情。 我假设这种行为可能是由于我可以改变的结果,而45GB是tempdb日志不寻常的大小。 我们在代码中使用了很多临时表和表值函数,所以有很多使用tempdb的空间,我可以理解tempdb数据库的增长,但是不了解templog增长的原因。 到目前为止,我已经运行了DBCC OPENTRAN('tempdb')来查看是否有任何旧的事务挂起,而不是。 我已经阅读了关于如何缩小tempdb的问题,并且已经完成了几次,但是我真的很想知道如果我能做些什么来阻止这个事情发生在第一个地方或者更多的细节上,第一个地方。 == == EDITS 1) tempdb正在使用简单的恢复模式 2) templog的增长发生在凌晨几个小时,当时我们有一些计划的查询正在运行,基本上是一个负载的报告,在未来一天的办公时间。 这个文件的大小稳步增长。 我们控制同时运行多less个并发报告,增加并发报告的数量会提高日志的增长速度。
我的数据库大小约为1GB(根据我的db的mdf文件)。 我的数据库服务器有4GB的内存。 在活跃的计算机上查看内存消耗,使用率约为85%(包括操作系统等) 这是否意味着所有数据库读取活动在内存中独自工作(即整个数据库在内存中)? 还是还有一个情况,它将不得不去磁盘?