使用 M 代码从 SQL 获取数据出现凭据错误

问题描述

我尝试使用 Power Query 中的 M 代码连接本地 sql Server 中的数据。我看不出两个代码间的区别,第一个代码连接并获取数据正常,但第二个代码有关于凭据的错误。请告诉我这是为什么

一个代码

let
  Source = sql.Database("MyServer","AdventureWorksDW2014"),dbo_FactFinance = Source{[Schema="dbo",Item="FactFinance"]}[Data]
in
  dbo_FactFinance
    

第二个代码

    let
  Source = sql.Databases("MyServer"),AdventureWorksDW2014 = Source{[Name = "[AdventureWorksDW2014]"]}[Data],dbo_FactFinance = 
  AdventureWorksDW2014{[Schema = "dbo",Item = "FactFinance"]}[Data],in
  dbo_FactFinance 

第二段代码错误

the error of the second code:

非常感谢你们!!

解决方法

很可能您的帐户仅拥有 AdventureWorksDW2014 数据库的权限。

在第一个代码段中,您直接连接到 AdventureWorksDW2014 数据库。在第二种情况下,您连接到默认数据库(通常是 master),然后连接切换到 AdventureWorksDW2014 数据库。因此,如果您的帐户在 SQL Server 上的登录名只有 public 服务器角色,并且用户映射到 AdventureWorksDW2014(例如 db_ownerdb_datareader 等),那么您必须使用第一个代码,或者将登录的默认数据库设置为 AdventureWorksDW2014

有关详细信息,请查看 Create a Login