求大神解决!!! 急切~ 关于SQL Server访问远程文件的权限问题~
使用VS2008写一个小程序将本地音频文件保存到另一台机子上的远程服务器上,使用CDatabase类中的ExcuteSQL()方法来执行SQL语句,
一、远程数据库中TestTable的类型分别为varchar(50),varchar(50),varbinary(MAX)
二、SQL语句为:
SELECT INTO TestTable(SoundID, SoundName, SondFileSourcer) select '10', 'You are my world.wav', BulkColumn FROM OPENROWSET(Bulk '\\Jason-PC\SoundFiles\You are my world.wav',SINGLE_BLOB) AS BLOB
当数据库访问的是远程服务器的话,则openrowset中指定的文件路径需要使用UNC命名规则,所以我将本地文件夹已经共享,远程的计算机对该文件是完全控制的,然后需要执行之后将该文件保存到远程服务器上。。。
可是执行的时候SQL会报错
“执行SQL语句出错!!!
由于无法打开文件“\\Jason-PC\SoundFiles\You are my world.wav”,无法进行大容量加载。操作系统错误代码为5(拒绝访问。)”
应该是权限问题吧,可是我已经将本地的文件夹共享,服务器所在主机能够访问我的文件。所以我怀疑有可能是SQL的登陆账户并没有访问本机文件的权限造成的吧。。。在网上找了好多遍了,没找到合适的解决办法,求助啊!!!!
还有没有向SQL Server远程服务器里保存较大的二进制文件的方法啊!文件大小限制在30M+
[最优解释]
1、你的应用程序是否有权限访问?
2、检查SQLServer服务所用的账号是否有权限访问\\Jason-PC\SoundFiles\You are my world.wav
3、文件大小大于1M的文件,如果是2008,可以考虑使用FILESTREAM
[其他解释]
我建议 在服务器端 查看启动SQL Server服务的账号
确保这个账号有权限访问本地
[其他解释]
执行的时候是以SQL Server Service的账户访问\\Jason-PC\SoundFiles\You are my world.wav
所以你要确保你的SQL Server Servcie账户有完全访问共享文件夹的权限(共享文件夹中添加SQL Server Servcie的账户,然后给FULL CONTROL)。
[其他解释]
确保SQL服务帐号有读取权限呀
[其他解释]