2008年6月28日星期六

xp_cmdshell安全使用

xp_cmdshell可以让系统管理员以操作系统命令行解释器的方式执行给定的命令字符串,
并以文本行方式返回任何输出,是一个功能非常强大的扩展存贮过程。
一般情况下,xp_cmdshell对管理员来说也是不必要的,xp_cmdshell的消除不会对Server造成
任何影响。
可以将xp_cmdshell消除:
Use Master
Exec sp_dropextendedproc N'xp_cmdshell'
Go

如果需要的话,可以把xp_cmdshell恢复回来:
Use Master
Exec sp_addextendedproc N'xp_cmdshell', N'xplog70.dll'
Go

xp_cmdshell 操作系统命令外壳
这个过程是一个扩展存储过程,用于执行指定命令串,并作为文本行返回任何输出。
语法:
xp_cmdshell command_string[,no_output]
command_string 要执行的命令串
no_output 不返回命令执行的输出
说明:
在把xp_cmdshell的执行许可权授予用户时,用户将能够在Windows NT命令
外壳执行运行SQL Server(通常是本地系统)的帐号有执行特权的任何
操作系统命令。
例:
1、EXEC master..xp_cmdshell "dir *.exe"
返回可执行文件的列表
2、EXEC master..xp_cmdshell "copy d:\test1.jpg e:\" no_output
不返回输出
3、特别是执行
EXEC master..xp_cmdshell "net start awhost32"
EXEC master..xp_cmdshell "net stop awhost32"
可以启动和停止远程的PCAnywhere服务。对远程服务器操作很有帮助。

SQL Server2005可以通过界面配置屏蔽xp_cmdshell功能

表中删除重复行的SQL语句

--查询重复语句

select * from SearchLogHistory where searchkey in (select searchkey FROM SearchLogHistory GROUP BY searchkey HAVING count(*) > 1)

--删除重复语句

delete SearchLogHistory where searchkey in (select searchkey FROM SearchLogHistory GROUP BY searchkey HAVING count(*) > 1) --获取重复的字段
and logid not in(select max(logid) from SearchLogHistory group by searchkey having count(*)>1 )--排除唯一重复的ID

2008年6月27日星期五

SID 介绍

            

SID是什么,Active Directory活动目录域中每一个对象也有一个唯一标识,成为GUID。GUID=SID + RID 。活动目录中专门有一个操作主机角色叫RID,就是为域中的每个对象分配一个RID号。最终GUID在所有域,乃至全世界都是唯一的。计算机使用 SID 来跟踪每个帐户: 如果重命名管理员帐户,计算机仍然知道哪个帐户是管理员帐户。 这是因为 SID 不同于名称,它永远不会更改。

            现实应用中很多使用磁盘映像克隆技术来大规模部署 Windows。此方法要求将完全安装和配置的 Windows 计算机的磁盘复制到其他计算机的磁盘驱动器。其他这些计算机似乎已经有效地完成了相同的安装过程,并且可以立即使用。虽然此方法节省了数小时的工作量并且比其他部署方法有效,但是它存在一个严重问题,即每个克隆的系统都具有一个完全相同的计算机安全标识符 (SID)。例如Ghost程序制作系统、使用VMware、Virtual虚拟操作系统拷贝时,这一因素会损害工作组环境的安全性,并且在具有多个相同计算机 SID 的网络中,还可能损害可移动媒体安全性。来自 Windows 社区的要求已经促使多家公司开发可以在克隆系统后更改计算机的SID 的程序。

            NewSID 是可更改计算机的 SID 的程序。它是一个免费的 Win32 程序,这意味着它可以容易地在以前克隆的系统上运行。NewSID 可在 Windows NT 4、Windows 2000、Windows XP 和 Windows .NET Server 上运行。NewSID 首先为计算机生成一个随机的 SID,然后更新它在注册表和文件安全描述符中找到的现有计算机 SID 的实例,并用新 SID 替换旧 SID。NewSID 要求使用管理权限运行。它有两个功能:更改 SID 和更改计算机名称。NewSID 的 SID 同步功能使您可以指定从另一台计算机获取新 SID 而不是随机生成 SID。使用此功能,可以将备份域控制器 (BDC) 移动到一个新域,因为根据 BDC 与其他域控制器 (DC) 具有相同的计算机 SID,可以确定该 BDC 与某个域的关系。只需选择“Synchronize SID”按钮并输入目标计算机的名称。您必须具有更改目标计算机的注册表项的安全设置的权限,这通常意味着您必须以域管理员身份登录才能使用此功能。

            请注意当您运行 NewSID 时,注册表的大小将会增长,因此请确保注册表最大大小能够适应这一增长。我们已发现这一增长对系统性能没有明显影响。注册表增长的原因是:当 NewSID 应用临时安全设置时,注册表变零碎了。删除这些设置后,注册表不受影响。
NewSID绿色软件下载地址:http://download.sysinternals.com/Files/NewSid.zip
更多关于AD技术的参考:http://gnaw0725.blogbus.com/