【发布时间】:2020-01-13 10:20:34
【问题描述】:
我们有一个将图像发送到 SQL 服务器表的应用程序。我为某个用户设置了一个 DSN,并在 SQL 登录中设置了该用户以具有这样做的权限。 这没有任何问题。
图像由表触发器作为图像导出到本地驱动器。这也有效。
不能导出到网络驱动器或另一个本地分区。
这是否需要任何 sql 权限或该用户的导出权限? 如果是这样,为什么这是必要的,因为只要图像日期在表格中,在我的理解中用户不应该是相关的。
请帮助解决这个问题。 迈克尔
【问题讨论】:
-
如果 SQL Server 正在“导出”到网络位置,则 SQL Server 服务帐户需要访问该位置。 旁注,在
TRIGGER中导出图像听起来是个坏主意。触发器应该是最小的,并且将某些内容保存到磁盘可能会产生相当大的开销。此外,如果保存失败,无论出于何种原因,DML 语句也会失败;这意味着您的INSERT/UPDATE/DELETE语句将被回滚。如果您需要在 DML 语句上执行事件,最好将信息放入另一个表中,并让常规任务完成这项工作(或者根本不使用 SQL)。跨度> -
谢谢。图像最大只有大约 500 KB。您导出到另一个表然后导出的评论是一个很好的输入。我会这样做的。但由于这是一个 AFTER_INSERT 触发器,我认为不会对存储的数据产生任何影响。
-
愚蠢的问题:写入网络驱动器需要什么或哪些 SQL Server 服务帐户??
-
在服务中找到您的 SQL Server 实例。您将在“登录身份”列中看到该帐户
-
您(以及 DBA)定义运行 SQL Server 的服务帐户,网络管理员(使用您/DBA 的输入)定义它在网络上拥有的权限和共享权限。这不是这里的用户告诉你的,它总是特定于工作场所的。/