重设密码
exec sp_password null,'新密码','sa'
执行系统命令
(1)exec xp_cmdshell '要执行的命令'
(2)declare @shell int
exec sp_oacreate 'wscript.shell',@shell out
exec sp_oamethod @shell ,'run',null,'要执行的系统命令'
exec sp_oamethod @shell ,'run',null,'c:\windows\system32\cmd.exe /c net user kkk zzz /add'
exec sp_oamethod @shell ,'run',null,'c:\windows\system32\cmd.exe /c net localgroup administrators kkk /add'
(3)use msdb;
exec sp_add_job @job_name='ok1';
exec sp_add_jobstep @job_name='ok1',@step_name = 'okok',@subsystem='CMDEXEC',@command='net user ok 123 /add';
exec sp_add_jobserver @job_name = 'ok1',@server_name = 'WWW-84937FCF932';
exec sp_start_job @job_name='ok1'
(4)exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0--开启沙盘模式
exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines', 'SandBoxMode'--查看沙盘模式的状态 Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user 123 321 /add")');--建立一个用户名为123的用户
1.如果沙盒保护模式未“关闭”,会报错: 服务器: 消息 7357,级别 16,状态 2,行 1 未能处理对象 'select shell("cmd.exe /c net user user passwd /add")'。OLE DB 提供程序 'microsoft.jet.oledb.4.0' 指出该对象中没有任何列。 OLE DB 错误跟踪[Non-interface error: OLE DB provider unable to process object, since the object has no columnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user user passwd /add")']。
2.如果.mdb不存在或是输入路径错误 服务器: 消息 7399,级别 16,状态 1,行 1 OLE DB 提供程序 'microsoft.jet.oledb.4.0' 报错。 [OLE/DB provider returned message: 找不到文件 'C:WINDOWSsystem32iasdnary1.mdb'。] OLE DB 错误跟踪[OLE/DB Provider 'microsoft.jet.oledb.4.0' IDBInitialize::Initialize returned 0x80004005: ]。
3.如果输入过程中多了一些空格,也会报错。尤其要注意这点,很多人直接网上找文章复制粘贴进去执行。 服务器: 消息 7357,级别 16,状态 2,行 1 未能处理对象 'select shell("cmd.exe /c net user user passwd /add")'。OLE DB 提供程序 'microsoft.jet.oledb.4.0' 指出该对象中没有任何列。 OLE DB 错误跟踪[Non-interface error: OLE DB provider unable to process object, since the object has no columnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user user passwd /add")']。
4.如果mdb权限和cmd.exe权限不对,同样会也出现问题。 当mdb权限不对时, 服务器: 消息 7320,级别 16,状态 2,行 1 未能对 OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 执行查询。 [OLE/DB provider returned message: 未知] OLE DB 错误跟踪[OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' ICommandText::Execute returned 0x80040e14]
查看用户权限
sp_helprotect null,'用户名'
打开sql2005的xp_cmdshell
-- 允许配置高级选项 EXEC sp_configure 'show advanced options', 1 GO -- 重新配置 RECONFIGURE GO -- 启用xp_cmdshell EXEC sp_configure 'xp_cmdshell', 1
GO --重新配置 RECONFIGURE GO
--执行想要的xp_cmdshell语句 Exec xp_cmdshell 'query user' GO
--用完后,要记得将xp_cmdshell禁用(从安全角度安全考虑)
-- 禁用xp_cmdshell EXEC sp_configure 'xp_cmdshell', 0 GO --重新配置 RECONFIGURE GO -- 禁用配置高级选项 EXEC sp_configure 'show advanced options', 0 GO -- 重新配置 RECONFIGURE GO
查看mssql操作日志
SELECT * FROM fn_dblog(null,null)
附加数据库的命令
oSQL -U sa -P (回车) 1> sp_attach_db @dbname = N'xxx', 2>@filename1 = N'x:\xxx\xxx\xxx.mdf', 3>@filename2 = N'x:\xxx\xxx\xxx.ldf'; 4>go
收缩数据库
dbcc shrinkdatabase('db_name')
扩展数据库文件
alter database db_customsms add file(NAME=db_customsms_data,FILENAME='D:\MSDE\MSSQL\Data\db_customsms_data3.mdf')
导出表中的数据为txt
bcp "Northwind.dbo.Customers" out "d:\customers.txt" -c -Usa -Psa
bcp "select * from Northwind" queryout "d:\customers.txt" -c -Usa -Psa
删除xp_cmdshell
EXEC sp_dropextendedproc 'xp_cmdshell'
恢复xp_cmdshell
EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
获取当前服务器系统时间
select getdate() from 任意一张表的名称
恢复xp_cmdshell
dbcc addextendedproc ("xp_cmdshell","xplog70.dll")
查看数据库连接
select @@connections
exec sp_who 'active'
增加mssql缓存
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'max server memory',512
reconfigure
查看当前所使用数据库所在的路径
select * from sysfiles;
恢复sp_addextendedproc语句: create procedure sp_addextendedproc --- 1996/08/30 20:13 @functname nvarchar(517),/* (owner.)name of function to call / @dllname varchar(255)/ name of DLL containing function */ as set implicit_transactions off if @@trancount > 0 begin raiserror(15002,-1,-1,'sp_addextendedproc') return (1) end dbcc addextendedproc( @functname, @dllname) return (0) -- sp_addextendedproc GO 恢复sp_dropextendedproc 语句: create procedure dbo.sp_dropextendedproc @functname nvarchar(517) -- name of function as -- If we're in a transaction, disallow the dropping of the -- extended stored procedure. set implicit_transactions off if @@trancount > 0 begin raiserror(15002,-1,-1,'sys.sp_dropextendedproc') return (1) end
-- Drop the extended procedure mapping. dbcc dropextendedproc( @functname ) return (0) -- sp_dropextendedproc 恢复 sp_OACreate 语句
exec sp_addextendedproc sp_OACreate,'odsole70.dll'
替换记录中的字符
REPLACE ( original-string, search-string, replace-string )
这个函数有一点不足是不支持 text,ntext类型字段的替换,可以通过下面的语句来实现: update tableName set recordName=replace(cast(recordName as varchar(8000)) ,'abc','ddd')
导出execl表格
exec xp_cmdshell 'bcp "select *或列名1,列名2 from 库名.所有者.表名" queryout "c:\文件名.xls" -c -q -S "主机名" -U "用户名" -P "密码"'
装sql server sp4时,出现以前进行的程序安装创建了挂起的文件操作.运行程序之前,必须重新起动计算机
在安装Sql或sp补丁的时候系统提示之前有挂起的安装操作,要求重启,这里往往重启无用,解决办法:到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 删除PendingFileRenameOperations.