首页 技术 正文
技术 2022年11月8日
0 收藏 436 点赞 1,252 浏览 2506 个字

http://blog.csdn.net/dba_huangzj/article/details/38656615,专题目录:http://blog.csdn.net/dba_huangzj/article/details/37906349

未经作者同意,任何人不得以“原创”形式发布,也不得已用于商业用途,本人不负责任何法律责任。

前一篇:http://blog.csdn.net/dba_huangzj/article/details/38489765

前言:

基于安全性原因,某些功能在安装SQL Server时就被禁用,从2008开始,所有敏感选项可以通过一个叫【外围应用配置器】的【方面】进行管理,这个功能在2005的时候以独立工具的形式出现过,在2008又取消了。

实现:

1. 在SQL Server Management Studio(SSMS)中,右键【服务器】节点,选择【方面】:

2. 在【查看方面】对话框中,选择【外围应用配置器】:

原文出处:http://blog.csdn.net/dba_huangzj/article/details/38656615

3. 把【AdHocRemoteQueriesEnabled】、【OleAutomationEnabled 】和【XPCmdShellEnabled 】的属性设为False:

可以使用下面语句来查询这些【方面】的信息:

SELECT *FROM sys.system_components_surface_area_configurationWHERE component_name IN(    'Ole Automation Procedures',    'xp_cmdshell');

除了外围配置管理器,还可以使用【策略管理,PBM】来管理这些,将在第七章介绍。

4. 还可以使用T-SQL检查状态:

EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'Ad Hoc Distributed Queries';EXEC sp_configure 'Ole Automation Procedures';EXEC sp_configure 'xp_cmdshell';

原文出处:http://blog.csdn.net/dba_huangzj/article/details/38656615

5. 上面结果中,run_value为1 即启用,0为禁用,如果需要禁用这些,可以使用下面语句,记得使用RECONFIGURE命令让更改生效:

EXEC sp_configure 'Ad Hoc Distributed Queries', 0;EXEC sp_configure 'Ole Automation Procedures', 0;EXEC sp_configure 'xp_cmdshell', 0;RECONFIGURE;

原理:

Ad hoc分布式查询允许在T-SQL语句内使用连接目标数据源的字符串,可以使用OPENROWSET/OPENDATASOURCE关键字,通过OLEDB访问远程数据库,如下:

SELECT a.*FROM OPENROWSET('SQLNCLI', 'Server=SERVER2;Trusted_Connection=yes;','SELECT * FROM AdventureWorks.Person.Contact') AS a;

这种写法的权限基于授权类型,如果使用SQL Server身份验证,那么权限是SQL Server服务的帐号权限,如果是Windows 身份验证,权限是Windows帐号的权限。

OLE自动化程序(OLE automation procedures)是系统存储过程,允许T-SQL代码使用OLE 自动化对象,然后在SQL Server上下文外部运行,如sp_OACreate用于实例化对象并操作这个对象。下面代码演示如何使用OLE自动化程序删除文件夹:

EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'Role Automation Procedures', 1;RECONFIGURE;GODECLARE @FSO int, @OLEResult int;EXECUTE @OLEResult = sp_OACreate 'Scripting.FileSystemObject', @FSOOUTPUT;EXECUTE @OLEResult = sp_OAMethod @FSO, 'DeleteFolder', NULL, 'c:\sqldata';SELECT @OLEResult;EXECUTE @OLEResult = sp_OADestroy @FSO;

只有sysadmin服务器角色的成员才能使用这些程序。

xp_cmdshell扩展存储过程允许使用T-SQL访问底层操作系统,如:

exec xp_cmdshell 'DIR c\*.*';

限制这些程序的权限,可以一定程度上保护服务器的安全。

更多:

原文出处:http://blog.csdn.net/dba_huangzj/article/details/38656615

为了允许非sysadmin登录使用xp_cmdshell,可以把它封装到存储过程中并用EXECUTE AS 。如果你希望他们运行任意命令,必须定义一个代理帐号:

EXEC sp_xp_cmdshell_proxy_account 'DOMAIN\user','user password';

可用下面语句查询:

SELECT *FROM sys.credentialsWHERE name = '##xp_cmdshell_proxy_account##';

可用下面语句移除:

EXEC sp_xp_cmdshell_proxy_account NULL;

另外,你不能禁止sysadmin成员使用xp_cmdshell。即使禁用了,sysadmin角色成员还是可以启用。

下一篇:http://blog.csdn.net/dba_huangzj/article/details/38657111

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,491
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,492
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,293