我们有一些代码要运行BULK INSERT sql命令,但由于安装了帐户SQLAgent,因为它没有对文件所在文件夹的权限而被拒绝访问。我不希望该帐户拥有权限到那个文件夹,如果可以的话,我很乐意使用代理帐户。
不要认为这有多大帮助,但这里是我们用来运行sql命令的vb代码:
Dim sql As String = "BULK INSERT Visa From '@file' With (ROWTERMINATOR = '\n', FIELDTERMINATOR = '\t', KEEPNULLS)"
sql = Replace(sql, "@period", _date)
sql = Replace(sql, "@file", FullPath)
DBExecute(sql)
如何让这个工作?
正如HardCode所写,您可以在每个作业步骤中使用RunAs。基本上,你必须:
请注意,您使用的凭据必须具有访问该文件夹的权限以及连接数据库的权限。如果在VB.NET代码中使用SQL Server登录而不是Windows身份验证,则不需要以后。
Here您可以找到有关如何添加凭据和代理的分步说明。
更新:你的评论对原始问题有所启发。您不想更改作业步骤代理/凭据,而是使用.NET来模拟用户。
你可以通过以下方式实现: