凭据

可以在命令之间缓存和重复使用数据源凭据。 默认情况下,此缓存存储在 %LOCALAPPDATA%/Microsoft/pqtest 下的本地文件中,并使用当前用户密钥加密

作为本地文件存储的替代方法,可以将凭据存储在 Azure Key Vault中。 可以使用 --keyVault / -kv 选项启用此选项,提供密钥保管库名称作为选项参数,并设置下表中指定的环境变量:

注意

使用 Azure Key Vault 时,凭据存储为单个二进制对象,而不是单个机密。

变量 详情 示例
PQTEST_AZURE_CLIENT_ID 有权访问密钥保管库的 Microsoft Entra ID 应用程序的 ID (GUID)。 a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
PQTEST_AZURE_CLIENT_SECRET Microsoft Entra ID 应用程序的客户端密钥。 <client-secret-placeholder>
PQTEST_AZURE_TENANT_ID 拥有 Azure Key Vault 的租户的 ID (GUID)。 a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
PQTEST_AZURE_KEY_VAULT_URL 密钥保管库的 URL。 https://<myvault>.vault.azure.net

使用 keyVault 选项的示例:

set PQTEST_AZURE_CLIENT_ID="a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
set PQTEST_AZURE_CLIENT_SECRET="<client-secret-placeholder>"
set PQTEST_AZURE_TENANT_ID="a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
set PQTEST_AZURE_KEY_VAULT_URL="https://myvault.vault.azure.net"

<Path to PQTest.exe>.\PQTest.exe list-credential --keyVault secretName

凭证模板

使用此命令生成 JSON 格式的凭据模板,该模板可以传递到 set-credential 命令中。 此命令要求你提供扩展数据源信息。 如果数据源支持多个身份验证类型,则需要指定要与 --authenticationKind / -ak 选项一起使用的身份验证类型。

输出模板具有使用$$<密钥名称>$$标识的占位符值,应在将密钥名称传递给 set-credential 命令之前替换这些值。

例如,MyConnector 同时支持 Anonymous 和 UsernamePassword 身份验证类型。

若要生成 Anonymous 凭据,请使用以下命令:

<Path to PQTest.exe>.\PQTest.exe credential-template --extension MyConnector.mez --queryFile MyConnectorQuery.m --prettyPrint --authenticationKind Anonymous

注意

输出 JSON 值不包含任何占位符值,因为 Anonymous 类型不需要任何占位符值。

{
  "AuthenticationKind": "Anonymous",
  "AuthenticationProperties": {},
  "PrivacySetting": "None",
  "Permissions": []
}

以下命令将用于为同一连接器生成 UsernamePassword 凭据:

<Path to PQTest.exe>.\PQTest.exe credential-template --extension MyConnector.mez --queryFile MyConnectorQuery.m --prettyPrint --authenticationKind UsernamePassword

生成的模板包含 $$USERNAME$$$$PASSWORD$$ 占位符值。

{
  "AuthenticationKind": "UsernamePassword",
  "AuthenticationProperties": {
    "Username": "$$USERNAME$$",
    "Password": "$$PASSWORD$$"
  },
  "PrivacySetting": "None",
  "Permissions": []
}

Set-credential

使用此命令存储供 test-connection 和 run-test 命令使用的凭据。 此命令要求你提供扩展数据源信息。 可以通过以下三种方式之一设置凭据:

  • 使用 JSON 格式的凭据。
  • 用于身份验证类型的自动凭据,无需其他设置(AnonymousWindows)。
  • 使用交互模式。

JSON 格式的凭据

可以使用 JSON 凭据格式设置任何凭据类型。 使用 凭据模板命令 生成凭据 JSON。

使用 JSON 模板设置凭据时,输入必须通过管道传递到命令中,或通过文件从 stdin 提供。

这是一个示例,展示如何通过将 credential-template 命令的结果通过管道传递到 set-credential来设置 Anonymous 凭据:

<Path to PQTest.exe>.\PQTest.exe credential-template -e MyConnector.mez -q MyConnectorQuery.m -p -ak Anonymous | pqtest set-credential -e MyConnector.mez -q MyConnectorQuery.m -p
{
  "Details": {
    "Kind": "MyConnector",
    "Path": "MyConnector",
    "NormalizedPath": "MyConnector",
    "IsDefaultForKind": false
  },
  "Message": "Successfully set credential",
  "Status": "Success"
}

注意

可以通过使用自动凭据来设置 AnonymousWindows 凭据。

下面是从存储在磁盘上的文件(使用重定向输入)设置凭据的示例:

<Path to PQTest.exe>.\PQTest.exe set-credential -e MyConnector.mez -q MyConnectorQuery.m -p < mySavedCredential.json
{
  "Details": {
    "Kind": "MyConnector",
    "Path": "MyConnector",
    "NormalizedPath": "MyConnector",
    "IsDefaultForKind": false
  },
  "Message": "Successfully set credential",
  "Status": "Success"
}

自动凭据

无需提供 凭据模板即可设置 AnonymousWindows 凭据。

注意

以这种方式设置的 Windows 凭据默认使用当前用户的身份。 使用 凭据模板命令 生成 JSON 凭据,该凭据可以修改为使用备用 Windows 帐户凭据。

若要生成 Windows 凭据,请使用以下命令:

<Path to PQTest.exe>.\PQTest.exe set-credential -e MyConnector.mez -q MyConnectorQuery.m -p --authenticationKind windows

若要生成 Anonymous 凭据,请使用以下命令:

<Path to PQTest.exe>.\PQTest.exe set-credential -e MyConnector.mez -q MyConnectorQuery.m -p --authenticationKind anonymous

交互模式

可以通过交互模式使用 --interactive 命令行选项来设置凭据。

交互式模式可用于 OAuthAad 身份验证类型。 在此模式下运行命令会显示可用于测试 OAuth 实现的 OAuth 对话框。

交互式 OAuth 流使用 WebView2(Microsoft Edge Chromium)浏览器组件,可能需要单独安装。 可以在 Power BI Desktop 的 Power Query OAuth 文档中找到更多详细信息

--useLegacyBrowser 选项可用于强制使用 IE11 嵌入式浏览器窗口。