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 MSSQLserver -SVCStartType 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
GO

SQL的分布式关系对象(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=1×1;ord=1336617453?”> <img src=”http://ad.cn.doubleclick.net/ad/messagingplus.zdnet.com.cn/developer/code;sz=1×1;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\’就可以了

版权声明:本文为runfeng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/runfeng/archive/2006/02/24/336688.html