Sil*_*ver 2 ms-access sql-server permissions linked-server
我们有一个 SQL Server 2008 数据库,我们试图将它与 Access 2007 DB 链接(维护人员在大厅工作并拒绝迁移到 SQL Server)。我们有数据库的密码(假设数据库密码 = dbpassword,如果只有这个级别的保护,我认为我们已经链接到 Access 数据库,问题很少。
但是,Access 数据库位于网络驱动器上,并且位于该网络驱动器上受保护的目录中。我们知道用户名和密码(假设用户名 = cat 和密码 = pancakes)。
我正在研究这个 sp_addlinkedsrvlogin,我相信这是我们需要做的。不是吗?
sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname'
[ , [ @useself = ] 'TRUE' | 'FALSE' | NULL ]
[ , [ @locallogin = ] 'locallogin' ]
[ , [ @rmtuser = ] 'rmtuser' ]
[ , [ @rmtpassword = ] 'rmtpassword' ]
Run Code Online (Sandbox Code Playgroud)
问题是,我不知道在这些参数中放什么。
我假设 rmtuser 将是“猫”,而 rmtpassword 将是“煎饼”......
以下是 Access 数据库的完整路径:\volume9\v9\projects\cats\cooking\pancakedb\back-end
volume9 似乎对应于 K: 驱动器...
那么 rmtsrvname = '\volume9\v9\projects\cats\cooking\pancakedb\back-end' 吗?
另外, useself = 'FALSE' 对吗?我不知道locallogin。
我会以正确的方式解决这个问题吗?这是我第一次设置 sp_linkedserver。任何帮助是极大的赞赏!
编辑:
忘记!我们的链接服务器称为 PANCAKECONFIGDB。不知道有没有用
编辑2:
这些是我本地机器上 SQL Server 的设置。稍后我将提供有关服务器的信息以及完整的 sp_linkedserver 文本。这是我应该改变的地方吗?

编辑 3:
这是服务器的登录身份:

还有链接服务器的脚本...
****** Object: LinkedServer [PANCAKECONFIGDB] Script Date: 06/20/2012 14:14:28 ******/
EXEC master.dbo.sp_addlinkedserver @server = N'PANCAKECONFIGDB', @srvproduct=N'Access 2007', @provider=N'Microsoft.ACE.OLEDB.12.0', @datasrc=N'\\volume9\v9\projects\cats\cooking\PANCAKECONFIGDB\back-end\PANCAKECONFIGDB.accdb', @provstr=N';PWD= dbpassword'
/* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'PANCAKECONFIGDB',@useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
GO
EXEC master.dbo.sp_serveroption @server=N'PANCAKECONFIGDB', @optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'PANCAKECONFIGDB', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'PANCAKECONFIGDB', @optname=N'dist', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'PANCAKECONFIGDB', @optname=N'pub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'PANCAKECONFIGDB', @optname=N'rpc', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'PANCAKECONFIGDB', @optname=N'rpc out', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'PANCAKECONFIGDB', @optname=N'sub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'PANCAKECONFIGDB', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'PANCAKECONFIGDB', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'PANCAKECONFIGDB', @optname=N'lazy schema validation', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'PANCAKECONFIGDB', @optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'PANCAKECONFIGDB', @optname=N'use remote collation', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'PANCAKECONFIGDB', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO
Run Code Online (Sandbox Code Playgroud)
我将在这里总结我所有的评论作为答案。
你应该读这个:
http://msdn.microsoft.com/en-us/library/ms143504%28v=sql.105%29.aspx#Use_startup_accounts
SQL Server 服务是 SQL Server 引擎,在为该服务指定的帐户下运行,使用文件共享的链接服务器必须使用这些权限,因为没有设置让服务器服务在通过文件系统。
SQL Server 代理是运行计划作业的单独进程。如果您使用它并且它自己连接到网络共享(不仅仅是告诉 SQL Server 引擎针对链接服务器运行一些语句,该服务器将在上述引擎权限下),则它需要在适当的域帐户下运行。在你的情况下,它似乎没有运行,所以我不会打扰它。
运行 SQL Server Express 具有一定的数据库大小和功能限制,除了大量轻量级服务器(例如将小型内部应用程序部署到多个工作场所)外,我不会考虑将其用于一般服务器级生产用途不想支付许可费用并且要求适合产品。
内置的网络帐户是“NT AUTHORITY\NETWORK SERVICE”,您只需将其输入并清空密码即可恢复它。
如果您将 SQL Server 服务切换为作为域帐户运行,则需要为其授予足够的权限以访问数据库服务器上的操作系统 - 即,如果该帐户没有访问权限,则可以访问数据库文件所在的文件夹。
| 归档时间: |
|
| 查看次数: |
2838 次 |
| 最近记录: |