Sql server 从SQL写入文件的权限
我正在尝试从SQL保存一个XML文件。我在做一些事情,比如:Sql server 从SQL写入文件的权限,sql-server,Sql Server,我正在尝试从SQL保存一个XML文件。我在做一些事情,比如: DECLARE @FileName VARCHAR(100) DECLARE @db VARCHAR(100) DECLARE @SQLCmd VARCHAR(1000) SELECT @FileName = 'D:\ProductsList.xml' SELECT @db='MyBase.dbo.' SELECT @SQLCmd = 'bcp "SELECT '+@db+'ArticleName FROM '+@db+'
DECLARE @FileName VARCHAR(100)
DECLARE @db VARCHAR(100)
DECLARE @SQLCmd VARCHAR(1000)
SELECT @FileName = 'D:\ProductsList.xml'
SELECT @db='MyBase.dbo.'
SELECT @SQLCmd = 'bcp "SELECT '+@db+'ArticleName FROM '+@db+' ARTICLES' +
' FOR XML PATH(''Product''),ELEMENTS, ROOT(''Products''), TYPE "' +
' queryout '+@FileName +' -w -T -S' + @@SERVERNAME
EXECUTE master..xp_cmdshell @SQLCmd
它在一台sql server上运行正常,但在另一台sql server上运行失败。我收到消息错误=[Microsoft][SQL Server本机客户端11.0]无法打开BCP主机数据文件
不幸的是,Bcp、queryout、cmdshell对我来说都是全新的
我读了很多网站,他们都有一些有趣的信息,但我真的不知道如何开始
他们说-为运行脚本的用户添加权限。但如果不是我,这个用户是谁;是否有为运行SQL Server或其他什么而创建的自动Windows用户?在哪里可以看到此用户并配置其权限,以便它可以保存我的文件
或者我应该知道bcp和cmdshell还有其他一些问题
非常感谢你的帮助。我真的被卡住了:您是否能够在D:\\上手动创建任何文件?从SQL Server之外的批处理文件或脚本执行此操作要简单得多。使用xp_cmshell通常是个坏主意,因为它有许多潜在的权限和安全问题。好的,我自己解决了。当我使用xp_cmdshell执行操作时,我并不是以我自己的身份执行操作的——我曾经登录到Windows的用户。相反,在我的例子中,我是一个名为mssqlserver的用户。检查xp\u cmdshell“whoami”以查看它。经过长时间的绝望探索,我找到了这个链接,它帮助我解决了所有问题: