记录 MSSQL使用 bcp xp_cmdshell导出数据报错 无法解析列级排序规则

xp_cmdshell 无法解析列级排序规则

报错提示:

执行命令: 

exec master..xp_cmdshell 'bcp "[test123].[dbo].[姓名测试]" queryout D:\Temp3.csv -c -t, -

T'

原因:

中文字符导致的排序规则不一致

解决:用关键字“N”转换字符

exec master..xp_cmdshell N'bcp "[test123].[dbo].[姓名测试]" queryout D:\Temp3.csv -c -t, -

T'

### xp_cmdshell - **功能介绍**:`xp_cmdshell` 是 SQL Server 中的一个扩展存储过程,其主要功能是允许在 SQL Server 实例中执行操作系统命令。 - **使用前提**:拥有 SA 权限且 `xp_cmdshell` 已启用。在 SQL Server 2005 之后默认关闭 `xp_cmdshell`。启用 `xp_cmdshell` 的代码如下: ```sql EXEC sp_configure 'show advanced options',1; RECONFIGURE; EXEC sp_configure 'xp_cmdshell',1; RECONFIGURE; ``` - **使用示例**:导出查询结果到文件,示例代码如下: ```sql EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout "c:test.xls" /c -/S"服务器名" /U"用户名" -P"密码"' ``` - **安全风险**:由于 `xp_cmdshell` 可以执行任意操作系统命令,一旦被攻击者利用,可能会导致严重的安全问题,如获取服务器的系统权限、执行恶意代码等。 ### sp_Oacreate - **功能介绍**:`sp_Oacreate` 用于在 SQL Server 中创建 OLE 对象,可通过该对象执行系统命令,从而实现对操作系统的交互操作。 - **使用前提**:需要有相应的权限支持。 - **使用示例**:可通过相关命令来判断和开启其使用,例如恢复相关配置: ```sql dbcc addextendedproc ("sp_oacreate","odsole70.dll") ``` 还可以结合错误信息查看,示例代码如下: ```sql lberr:exec sp_oageterrorinfo 0,@src out,@desc out lbexit:select cast(@err as varbinary(4)) as 错误号,@src as 错误源,@desc as 错误描述 select @sql,@constr,@fdlist go ``` - **安全风险**:与 `xp_cmdshell` 类似,`sp_Oacreate` 如果被恶意利用,攻击者可以通过它执行系统命令,对服务器进行未授权的操作,从而危及整个系统的安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值