SQL Server 2008:为什么从ACCESS登录ODBC时只能看到系统表

SQL Server 2008:为什么从ACCESS登录ODBC时只能看到系统表,sql,sql-server-2008,ms-access,ssms,Sql,Sql Server 2008,Ms Access,Ssms,我正在使用Access尝试获取SQL Server 2008中表的一些链接 我在SSMS for SQL Server的安全性下创建了一个用户名,并将其映射到我需要的数据库下的一个用户。我还为该用户提供了我需要的默认数据库 当我尝试通过ODBC连接时,我没有看到正确的表。我看到的是一堆Sys表。有人知道我做错了什么吗 以下是主要用户的创建步骤: /* For security reasons the login is created disabled and with a random pass

我正在使用Access尝试获取SQL Server 2008中表的一些链接

我在SSMS for SQL Server的安全性下创建了一个用户名,并将其映射到我需要的数据库下的一个用户。我还为该用户提供了我需要的默认数据库

当我尝试通过ODBC连接时,我没有看到正确的表。我看到的是一堆
Sys
表。有人知道我做错了什么吗

以下是主要用户的创建步骤:

/* For security reasons the login is created disabled and with a random password. */
/****** Object:  Login [lomuser]    Script Date: 10/22/2010 08:14:03 ******/
CREATE LOGIN [lomuser] WITH PASSWORD=N'µ''ØÑëOº\¾dõMÐàæfÄ%[RríÜ2 y', DEFAULT_DATABASE=[LOMDATABASE], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO

ALTER LOGIN [lomuser] DISABLE
GO
以下是为特定用户创建的特定数据库(顶级用户映射到该数据库),仅供参考,它们具有相同的名称:

USE [LOMDATABASE]
GO

CREATE USER [lomuser] FOR LOGIN [lomuser] WITH DEFAULT_SCHEMA=[dbo]
GO

在odbc面板中设置DSN连接或让access为您创建此连接时,默认数据库为master。因此,当您链接一个表时,您将看到的唯一表是系统表。删除链接表(如果有)。现在,当您选择链接到表时,请在数据源中选择“新建”以创建新的DSN连接。在此过程中,您将看到将默认数据库从system更改为所需的任何数据库的选项


更改上述默认值后,链接表时,将看到所选数据库中的表。如前所述,如果未进行上述设置,则只需查看系统表。

在odbc面板中设置DSN连接或让access为您创建此连接时,默认数据库为master。因此,当您链接一个表时,您将看到的唯一表是系统表。删除链接表(如果有)。现在,当您选择链接到表时,请在数据源中选择“新建”以创建新的DSN连接。在此过程中,您将看到将默认数据库从system更改为所需的任何数据库的选项


更改上述默认值后,链接表时,将看到所选数据库中的表。如前所述,如果未进行上述设置,则只需查看系统表。

您可以在Microsoft支持中找到解决方案

这是SQL Server中的一个已知错误 当心拒绝向公众提供Select 因为它在其他地方有意料之外的结果


对于一个临时的SQL管理员来说,这些解决方案可能很困难。

您可以在Microsoft支持中找到解决方案

这是SQL Server中的一个已知错误 当心拒绝向公众提供Select 因为它在其他地方有意料之外的结果


解决方案对于一个临时的SQL管理员来说可能很困难。

如果您只看到sys目录视图,很可能是权限问题-您正在连接的用户没有任何查看表的权限…@marc_s如何分配权限?请参阅:如果有两个数据库-一个工作,另一个不工作,那么它们就不一样了。问题在于2.Access与sql server之间的差异。10年来,Access一直支持到sql server的本机oleDB连接。Access开发者既不使用也不推荐oleDB(面向非知情人士的城市传奇)。访问odbc和使用DAO要好得多。这也适用于对SharePoint的支持以及与SharePoint同步到云中的断开连接的表的新访问功能(Access Web services也将是Office 365的一部分,再次使用DAO)。Azure也是如此(对Access的支持通过ODBC烘焙到Access中)。oleDB对Azure和access的支持不到位,我们可能看不到Azure在这方面的任何内容。如果您只看到sys目录视图,这很可能是权限问题-您用来连接的用户没有任何查看表的权限…@marc_s我如何分配权限?请参阅:如果有两个数据库,一个工作,另一个不工作,那么它们是不同的。问题在于2.Access与sql server之间的差异。10年来,Access一直支持到sql server的本机oleDB连接。Access开发者既不使用也不推荐oleDB(面向非知情人士的城市传奇)。访问odbc和使用DAO要好得多。这也适用于对SharePoint的支持以及与SharePoint同步到云中的断开连接的表的新访问功能(Access Web services也将是Office 365的一部分,再次使用DAO)。Azure也是如此(对Access的支持通过ODBC烘焙到Access中)。oleDB对Azure和access的支持不到位,我们可能看不到Azure在这方面的任何内容。