zoukankan      html  css  js  c++  java
  • SQL SERVER SQL Agent服务使用小结

    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>

    要使用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'就可以了
  • 相关阅读:
    分布式消息通信(ActiveMQ)
    【深入剖析Tomcat笔记】第六篇 Tomcat Lifecycle
    【Bug历练手册】Lomok StackOverflowError
    【Bug历练手册】Frame must be terminated with a null octet
    【深入剖析Tomcat笔记】第五篇 Tomcat Container 与 Pipelining Tasks
    【技术选型-BI】BI技术选型
    【网络安全】登录问题(一)Session/Cookie源码分析
    【网络安全】登录问题(一)Session/Cookie源码分析
    【PostgREST 基本教程(一)】 PostgREST快速搭建
    【深入剖析Tomcat笔记】第四篇 默认连接器
  • 原文地址:https://www.cnblogs.com/runfeng/p/336688.html
Copyright © 2011-2022 走看看