【问题标题】:BCP command using xp_cmdshell uses what kind of protocol?使用 xp_cmdshell 的 BCP 命令使用什么样的协议?
【发布时间】:2015-09-10 21:04:56
【问题描述】:

我在 sql server 中使用 BCP 命令将数据从平面文件导入数据库中的表。它从中检索的服务器使用 FTP 和 SFTP 协议。我已要求安全管理员授予 sql server 帐户对该服务器的访问权限,以读取文件所在的特定位置。当我使用 xp_cmdshell 运行 BCP 命令时,它会使用什么协议?

【问题讨论】:

  • 我认为您的安全人员需要更加关注允许xp_cmdshell

标签: sql-server sql-server-2008 ftp sql-server-2008-r2 sftp


【解决方案1】:

BCP 使用 ODBC 连接到文件。首先将文件复制到服务器并从那里读取而不是通过网络读取可能是个好主意。

【讨论】:

  • ODBC 而不是本机客户端?对于只需要担心一个平台并且其目的是速度的工具来说,这听起来像是一个有趣的选择。我不是说你错了,但你有这方面的文件吗?
  • SQLNCLIxx.dll 只是 ODBC 和 OLEDB 的包装器,以简化部署、管理和编程(两个 API 在单个 DLL 中)。它被称为 SQL Native,以区别于 Windows 提供的针对各种数据存储的 MDAC。 SQLNCLI 仅针对 SQL Server 并随 SQL Server 一起提供,独立于 Windows。
  • 再一次...你有这方面的文件吗?
  • 很少有详细的文档保留在 BCP 上,因为它自 2005 年以来一直没有更新(修复无法承受)。 2000/2005 BOL 仍然有它technet.microsoft.com/en-us/library/Aa196743(v=SQL.80).aspx,但后来的版本已经删除了大部分细节。请参阅msdn.microsoft.com/en-us/library/aa337544.aspx 底部附近的注释,表明它是使用 ODBC 批量复制编写的,并查看msdn.microsoft.com/en-us/sqlserver/connectivity.aspx 中的 ODBC 框。还是不信,运行 ODBC 或 wireshark 跟踪,你会看到 ODBC 调用。
  • @SQLmojoe 说 SQL Server 使用的协议是封装 ODBC 的 TDS(表格数据流)是否正确?
猜你喜欢
  • 2015-05-12
  • 2010-12-25
  • 1970-01-01
  • 2021-06-01
  • 2015-08-11
  • 1970-01-01
  • 2016-04-06
  • 2016-02-18
  • 2020-06-09
相关资源
最近更新 更多