但是我可以列出表格......
如果我运行,Exec sp_tables_ex 'LSTest'
我会得到一个包含表格列表的结果。
但如果我跑
Exec sp_columns_ex 'LSTest', '<one of those table names>'
我得到一个空列表,如果我尝试查询它们,我也什么也得不到。
如果我进入链接服务器的属性,我会Be made using this security context
使用Remote login:
和With password:
作为我通常在 MS Access 中使用的工作组文件。
如果我尝试通过右键单击链接服务器中的表名来编写查询脚本,而不是选择语句,我会得到以下信息:
-- [LSTest]...[Tablename] contains no columns that can be selected or the current user does not have permissions on that object.
1. 在注册表中设置您的 SystemDB 文件
请注意,您只能指定这些该死的东西之一。
在 32 位 Windows 上
如果安装 SQL Server 实例的 Windows 安装是 32 位的,这是值得怀疑的...使用以下键设置 MS-Access 工作组文件的路径 (
*.mdw
):HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\SystemDB
在 64 位 Windows 上
另一方面,如果安装 SQL Server 实例的 Windows 安装是 64 位的,(更有可能)在此处设置 MS-Access 工作组文件 (
*.mdw
) 的路径:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Jet 4.0\Engines\SystemDB
2. 创建你的链接服务器到 MS Access
3. 确保在
(.mdw)
从(.mdb)
现在,如果你想确保密码在运行后正确传递......在
Object Explorer
面板中<server-name>\Server Objects\Linked Servers
,右键单击它并单击refresh
......你的新密码LinkedServerToMSAccessMDB
现在应该出现在列表中,右键单击它并选择Properties
在
Select a page
面板中接下来出现的窗口中,单击Security
,然后在For a login no defined in the list above, connections will:
单选按钮列表中,选择Be made using this security context:
(如果您不想特别注意哪些网络用户可以访问它......否则使用映射)然后.mdw
在Remote login:
和With password:
文本框中输入您通常用来访问 MS Access 的用户名和密码。4.运行查询
单击后,
OK
您现在应该能够对该文件运行一个select
,.mdb
以便您可以VIEW
在某个指定用户的模式中创建一个。