一、注意点

1、在SQLServer中,有些系统扩展存储过程,是有风险,需要取消public角色的执行权限。

2、从SQLServer2005开始就不能通过sp_dropextendedproc 删除系统扩展存储过程。

3、系统扩展存储过程是不能被删掉的,也没办法禁用(sysadmin角色的用户肯定拥有执行的权限),所以如果有公司基线要求,我们要做的是拒绝public角色拥有这些扩展存储过程的执行权限。

4、一些高风险的存储过程如下:

  xp_cmdshell:以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行的形式返回所有输出;

  xp_readerrorlog:读取SQLServer的错误日志;

  xp_snmp_getstate:获取snmp状态信息;

  xp_sprintf:格式化数据;

  xp_sqlinventory:查询SQLServer清单;

  xp_sqlregister:对注册表的读取和编辑;

  xp_sqltrace:SQL跟踪记录;

  xp_servicecontrol:服务管理控制,该存储过程允许用户启动、停止、暂停或运行服务;

  xp_sscanf:从字符串中读取数据数据到每个格式参数给出的参数位置;

  xp_availablemedia:该存储过程可以查看系统上可用的磁盘驱动器的空间信息;

  xp_subdirs:通过xp_dirtree,xp_subdirs将在一个给定的文件夹中显示所有子文件夹;

二、操作步骤

1.查看这个扩展的存储过程对象
命令:
select name,id from sysobjects where name in ('xp_cmdshell','xp_readerrorlog','xp_snmp_getstate','xp_sprintf',
'xp_sqlinventory','xp_sqlregister','xp_sqltrace','xp_servicecontrol','xp_sscanf','xp_availablemedia','xp_subdirs')

2.查看主体public的权限
命令:
select * from sys.database_permissions where grantee_principal_id = DATABASE_PRINCIPAL_ID('public')

3.查看一些public角色是否拥有一些指定的扩展存储过程的执行权限
注:查询扩展存储过程是否符合基线的最终SQL
命令:
select name from sysobjects where id in(
select major_id from sys.database_permissions where grantee_principal_id = DATABASE_PRINCIPAL_ID('public')
and permission_name = 'EXECUTE' and state_desc!='DENY'
and major_id in (
select id from sysobjects where name in ('xp_cmdshell','xp_readerrorlog','xp_snmp_getstate','xp_sprintf',
'xp_sqlinventory','xp_sqlregister','xp_sqltrace','xp_servicecontrol','xp_sscanf','xp_availablemedia','xp_subdirs')
)
)

修改基线方式:直接在图形化界面,把执行的权限去掉就行

27-SQLServer系统扩展存储过程的更多相关文章

  1. SQL Server 禁用扩展存储过程

    概述 扩展存储过程是 SQL Server 实例可以动态加载和运行的 DLL.扩展存储过程是使用 SQL Server 扩展存储过程 API 编写的,可直接在 SQL Server 实例的地址空间中运 ...

  2. JSON序列化及利用SqlServer系统存储过程sp_send_dbmail发送邮件(一)

    JSON序列化 http://www.cnblogs.com/yubaolee/p/json_serialize.html 利用SqlServer系统存储过程sp_send_dbmail发送邮件(一) ...

  3. sqlserver 只有函数和扩展存储过程才能从函数内部执行

    一个SQLServer的自定义函数中调用一个自定义的存储过程,执行此函数后发出如下提示:“只有函数和扩展存储过程才能从函数内部执行". 原因:函数只能使用简单的sql语句,逻辑控制语句,复杂 ...

  4. SqlServer扩展存储过程

    1. 扩展存储过程xp_cmdshell用法: --1.启用 SP_CONFIGURE RECONFIGURE GO SP_CONFIGURE RECONFIGURE GO --2.用法 master ...

  5. SQLSERVER系统视图,系统表,sys.sql_modules视图

    SQLServer中提供了相当丰富的系统视图,能够从宏观到微观,从静态到动态反应数据库对象的存储结果.系统性能.系统等待事件等等.同时 也保留了与早期版本兼容性的视图,主要差别在于SQLServer2 ...

  6. SQLSERVER系统视图 sql server系统表详细说明

    参考 https://www.cnblogs.com/luluping/archive/2012/11/05/2754639.html https://www.cnblogs.com/litubin/ ...

  7. SQLServer系统视图sysobjects中type字段说明

    SQLServer中系统视图sysobjects中type字段的对象类型: AF = 聚合函数 (CLR) C = CHECK 约束 D = DEFAULT(约束或独立) F = FOREIGN KE ...

  8. sql server 常用的扩展存储过程

    sql server 里面提供了丰富的系统存储过程来辅助我们管理数据库以及开发.今天分享介绍一些常用的数据库扩展存储过程 xp_cmdshell 这个大家都比较熟悉了,使用xp_cmdshell 可以 ...

  9. SQL Server里一些未公开的扩展存储过程

    SQL Server里一些未公开的扩展存储过程 [转帖] 博客天地 www.inbaidu.com SQL Server里一些未公开的扩展存储过程 扩展存储过程(xp)是直接运行在SQL Server ...

随机推荐

  1. Flink SQL项目实录

    一.Flink SQL层级 为Flink最高层的API,易于使用,所以应用更加广泛,eg. ETL.统计分析.实时报表.实时风控等. Flink SQL所处的层级: 二.Flink聚合: 1.Wind ...

  2. Spark简介 --大数据

    一.Spark是什么? 快速且通用的集群计算平台 二.Spark的特点: 快速:Spark扩充流行的Mapreduce计算模型,是基于内存的计算 通用:Spark的设计容纳了其它分布式系统拥有的功能, ...

  3. DB2输出每隔10分钟的数据

    一.输出1-100的数据 此处参考 https://bbs.csdn.net/topics/390516027 with t(id) as ( as id from sysibm.sysdummy1 ...

  4. Java面试题代码篇

    1.统计字符串中的各种字符的个数并对其排序 package JavaMianSiTest; public class TongJIZiFu { public static void main(Stri ...

  5. 题目21 包含Min函数的栈

    ///////////////////////////////////////////////////////////////////////////////////// // 3. 题目21  包含 ...

  6. 10分钟学会使用Markdown绘制UML时序图

    1.1 什么是Markdown? Markdown是一种语法特别少.特别简单的标记语言,用来编写文档.用Markdown编写的文档是纯文本格式,经过编辑器的渲染,就会形成排 版优美的文档,本文就是用M ...

  7. Asp.net core 学习笔记 ( ef core transaction scope & change level )

    ef core 有 unit of work 的概念,当我们 save change 时会自动使用 transaction 确保更新的一致性. 隔离级别是默认的 read committed 不允许脏 ...

  8. (五)Spring Boot之@RestController注解和ConfigurationProperties配置多个属性

    一.@RestController和@Controller的区别 @RestController注解相当于@ResponseBody + @Controller合在一起的作用. 如果只是使用@Rest ...

  9. 【Transact-SQL】SQL Server自动把left join自动转化为inner join、以及关联时的数据重复问题

    原文:[Transact-SQL]SQL Server自动把left join自动转化为inner join.以及关联时的数据重复问题 1.SQL Server自动把left join自动转化为inn ...

  10. 在.netcore webapi项目中使用后台任务工具Hangfire

    安装Hangfire 在webapi项目中通过nuget安装Hangfire.Core,Hangfire.SqlServer,Hangfire.AspNetCore,截止到目前的最新版本是1.7.6. ...