1.在查询分析器理启动或停止SQL Agent服务 启动
use master go xp_cmdshell 'net start SQLSERVERAGENT'
停止
use master go xp_cmdshell 'net stop SQLSERVERAGENT'
将服务的启动从手工方式改为自动启动方式
exec xp_cmdshell 'scm -Action 7 -Service MSSQL server -SVC StartType 2'
直接用命令行执行引号内的内容也可以。 2、启动不正常原因和处理 表面上看SQL Server agent 服务启动正常,但在查看作业的属性与作业历史记录时都出现如下错误: 错误14258:当SQLServerAgent正在启动时,无法执行此操作。请稍后再试。 可能原因: 选择了"使用 Windows NT 纤程",具体原因不明。
解决方法: 企业管理器--右键SQL实例--属性--处理器--取消选择"使用 Windows NT 纤程" 然后重新启动sql服务 修改了系统密码 解决方法: a. 我的电脑--控制面板--管理工具--服务--右键 MSSQLSERVER--属性--登陆--登陆身份--选择"本地系统帐户" 或: b.我的电脑--控制面板--管理工具--服务--右键 MSSQLSERVER--属性--登陆--登陆身份--选择"此帐户"--选择 administrator ,密码和确认密码中输入你的administrator密码. 两者的区别: 选择第一种方式,以后修改了administrator密码,不用再调整(但要求登陆操作系统 的是系统管理员) 数据库 非法DOWN机出现故障 解决方法: 用安装光盘重新安装,然后选择‘高级选项’—‘重建注册表 ’,然后一路下去……
/* **取得某项服务是否启动 HOME haoK.Y **2004-10-20 根据 net start返回的结果判断某项服务是否启动 **示例 DECLARE @IsOnWorking BIT EXEC spServiceIsOnWorking 'MSSQL$NEWINSTANCE', @IsOnWorking OUTPUT SELECT @IsOnWorking */ CREATE PROCEDURE spServiceIsOnWorking ( @ServiceName VARCHAR(100), @IsOnWorking BIT OUTPUT ) AS SET NOCOUNT ON CREATE TABLE #Output ( OT VARCHAR(100) ) INSERT INTO #Output EXEC master..xp_cmdshell 'net start' SET @IsOnWorking = CASE WHEN EXISTS ( SELECT TOP 1 1 FROM #Output WHERE OT LIKE '%' + @ServiceName + '%' ) THEN 1 ELSE 0 END DROP TABLE #Output SET NOCOUNT OFF GOSQL的分布式关系对象(SQL-DMO)库允许你的VB6应用程序自动地同SQL服务器进行交互操作。这对于获取关于SQL服务器的信息很有用,例如服务器的状态或者网络上的可用服务器。
<a href="http://ad.cn.doubleclick.net/click%3Bh=v5|3396|3|0|%2a|t%3B27671752%3B0-0%3B0%3B6694709%3B31-1|1%3B15038075|15055971|1%3B%3B%7Esscs%3D%3fhttp%3a%2f%2fwww.site.com" target="_blank"><IMG SRC="http://m2.cn.doubleclick.net/123456/banner.gif" WIDTH=468 HEIGHT=60 BORDER=0 ></a>
<a href="http://ad.cn.doubleclick.net/click%3Bh=v5|3396|3|0|%2a|t%3B27671752%3B0-0%3B0%3B6694709%3B31-1|1%3B15038075|15055971|1%3B%3B%7Esscs%3D%3fhttp%3a%2f%2fwww.site.com" target="_blank"><IMG SRC="http://m2.cn.doubleclick.net/123456/banner.gif" WIDTH=468 HEIGHT=60 BORDER=0 ></a>
<A HREF="http://ad.cn.doubleclick.net/jump/messagingplus.zdnet.com.cn/developer/code;sz=1x1;ord=1336617453?"> <IMG SRC="http://ad.cn.doubleclick.net/ad/messagingplus.zdnet.com.cn/developer/code;sz=1x1;ord=1336617453?" border=0 ></a>
要使用SQL-DMO库,就要设置一个对“微软SQL-DMO对象库”的参照。
Application 对象的ListAvailableSQLServers 方法会返回一个NameList 对象,它包含有网络上可用服务器的列表。下面的代码显示了一个使用这个方法来填充列表框控件的方法:
Dim objSQLApp As SQLDMO.Application Dim objNameList As SQLDMO.NameList Dim intCount As Integer Set objSQLApp = New SQLDMO.Application Set objNameList = objSQLApp.ListAvailableSQLServers() For intCount = 1 To objNameList.Count Call List1.AddItem(objNameList.Item(intCount)) Next
SQL-DMO库里另外一个有用的对象是SQLServer 对象。这个对象能够被用来获取关于特定SQL服务器的信息。Connect 方法会建立到数据库服务器的连接并接受三个参数:数据库名、用户名和密码。一旦对象的连接成功了,关于服务器的信息就能够被取回:
Dim objSQLServer As SQLDMO.SQLServer Set objSQLServer = New SQLDMO.SQLServer objSQLServer.LoginSecure = True Call objSQLServer.Connect("MyServerName", "username", "password") Debug.PrintobjSQLServer.Name Debug.PrintobjSQLServer.HostName Debug.PrintobjSQLServer.Status 恢复使用 xp_cmdshell
前提需要工具:SQL Query Analyzer和SqlExec Sunx Version 第一部分: 有关去掉xp_cmdshell来保护系统的分析总结: 首先知道一下语句:1.去掉xp_cmdshell扩展过程的方法是使用如下语句:
if exists (select * from dbo.sysobjects where id=object_id(N'[dbo].[xpcmdshell]') and
OBJECTPROPERTY(id,N'IsExtendedProc')=1)exec sp_dropextendedproc N'[dbo].[xp_cmdshell]'
2.添加xp_cmdshell扩展过程的方法是使用如下语句:
sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'
现在看看现象:
我们在取得SA权限后远程用Sqlexec执行cmd命令,出现提示SQL_ERROR,那么很可能是去掉了xp_cmdshell。
现在来看看被去掉xp_cmdshell后恢复的两种方法:
方法一、使用SQL Query Analyzer连接对方后直接写入,挺方便sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'
方法二、使用SqlExec Sunx Version首先在SqlExec Sunx Version的Format选项里填上%s,在CMD选项里输入sp_addextendedproc 'xp_cmdshell','xpsql70.dll'或者对Sql2000情况下使用sp_addextendedproc 'xp_cmdshell','xplog70.dll'另外使用SqlExec Sunx Version来去除xp_cmdshell的方法和加的时候选择条件一样,然后输入sp_dropextendedproc 'xp_cmdshell'就可以了