【发布时间】:2014-01-07 12:35:19
【问题描述】:
我遇到的问题是我们不能在生产环境中使用 xp_cmdshell。我们没有它的许可。但是我还能用什么来代替 xp_cmdshell 在不同的服务器上创建文件?
SELECT @path = RTRIM(sys_value) FROM system_ZZDB WHERE sys_key = 'bisKey83'
SET @cmd = 'sqlcmd -SCHW20037619 -E -dzentraleDatenbank -s "" -Q "SET NOCOUNT ON; SELECT * FROM sync_BisKey ORDER BY per_nummer" -o "'
SET @cmd = @cmd + @path + '\exportzzdb.txt" -w 1000'
exec master..xp_cmdshell @cmd
这是我以后不能使用的代码。我还能做些什么来直接从 de DB 服务器创建文件?我们的服务器权限受到限制
非常感谢。
【问题讨论】:
-
在适当安全的环境中,您不能做任何事情,至少在 SQL 方面是这样。您可以创建一些 cmd 文件来从 SQL 服务器读取数据并写入文件并在服务器上手动运行它(或使用任务调度程序);这也需要足够的权限,但可以更精确地配置这些权限。
-
非常感谢您的推荐。是否可以创建一个可以创建文件的 c# 程序集?我有权创建存储过程,我可以安排它们,但我不知道我是否有权从程序集中创建文件。
标签: sql sql-server xp-cmdshell