0

因此,我们在 SQL Server 上设置了 sp_linkedserver 以连接到远程 Access 数据库。

假设这个数据库的路径是 W:/breakfast/pancakes/secretPancakes/pancakeDB.accdb

我们知道实际数据库的用户名和密码

密码:allY0urPancakeAreBelongToUs!

问题是,还有进入“secretPancakes”目录的身份验证。

这个认证是

用户名:超级厨师

密码:ilovesf00d


这是制作 sp_linkedserver 的代码...

/****** Object: LinkedServer [PancakeDB] Script Date: 06/13/2012 10:08:21 ******/
EXEC master.dbo.sp_addlinkedserver @server = N'PancakeDB', @srvproduct=N'Access 2007', @provider=N'Microsoft.ACE.OLEDB.12.0', @datasrc=N'W:/breakfast/pancakes/secretPancakes/pancakeDB.accdb
', @provstr=N';PWD=allY0urPancakeAreBelongToUs'
/* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'PancakeDB',@useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL

rmtuser 和 rmtpassword 是否适用于数据库?问题是,如果我在我的实际计算机上打开受保护的目录(secretPancakes)并要求 Windows 记住我的凭据,它会在我的计算机上正常工作,但在其他人的计算机上就不行。

我正在尝试解决这个问题,所以我们不必做 objNetwork.MapNetworkDrive(DriveLetter, RemotePath, False, UserID, UserPWD) 的事情,这很痛苦。(objNetwork = Microsoft.VisualBasic.CreateObject("WScript.Network"))

所以我的问题是:如何传递链接服务器中文件夹访问的凭据?

更新:此屏幕截图可能会有所帮助...? 在此处输入图像描述

另外,这是我将这些凭据更改为用于进入该文件夹的凭据的地方吗? 在此处输入图像描述

4

1 回答 1

0

SQL Server 服务帐户需要有权访问 Access 文件所在的文件夹,然后它应该可以工作。如您所说,Access DB的用户名和密码与某人是否具有文件系统的权限无关。

理想情况下,您不应在此处使用驱动器号,而只需使用 UNC 路径,这样可以避免驱动器映射问题。但是,允许 SQL Server 从文件中读取的唯一方法是确保它具有适当的共享和 NTFS 权限来执行此操作。

于 2012-06-14T08:42:55.863 回答