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 
     
     
      
  • 相关阅读:
    ORACLE备份脚本(4-RMAN1级增量备份)
    ORACLE备份脚本(3-RMAN0级全备)
    解决oracle数据库最大数据文件数超了
    ORACLE 数据库备份脚本(数据泵2-指定用户)
    oracle 数据库备份脚本(数据泵1-全库)
    Python操作hdfs
    ant实例
    Java网络编程客户端和服务器通信
    WordCount程序
    Python脚本开发练习
  • 原文地址:https://www.cnblogs.com/qanholas/p/1867046.html
Copyright © 2011-2022 走看看