凭证
可以在命令之间缓存和重用数据源凭证。 默认情况下,该缓存存储在 %LOCALAPPDATA%/Microsoft/pqtest 之下的本地文件中,并且使用当前用户密钥进行加密。
作为本地文件存储的备选方案,可将凭证存储在 Azure Key Vault 中。 可以使用 --keyVault / -kv 选项启用此选项,提供一个密钥保管库名称作为选项参数,并设置下表中指定的环境变量:
注意
使用 Azure Key Vault 时,凭证存储为单个二进制对象而不是单个密码。
变量 | 详细信息 | 示例 |
---|---|---|
PQTEST_AZURE_CLIENT_ID | 经授权可访问密钥保管库的 Microsoft Entra ID 应用的 ID (GUID)。 | c265f4e8-a32f-4548-a21e-3542ec65134a |
PQTEST_AZURE_CLIENT_SECRET | Microsoft Entra ID 应用的客户端密码。 | <client-secret-placeholder> |
PQTEST_AZURE_TENANT_ID | 拥有 Azure Key Vault 的租户的 ID (GUID)。 | c265f4e8-a32f-4548-a21e-3542ec65134a |
PQTEST_AZURE_KEY_VAULT_URL | 密钥保管库 URL。 | https://<myvault>.vault.azure.net |
示例:如何使用 keyVault 选项:
set PQTEST_AZURE_CLIENT_ID="c265f4e8-a32f-4548-a21e-3542ec65134a"
set PQTEST_AZURE_CLIENT_SECRET="<client-secret-placeholder>"
set PQTEST_AZURE_TENANT_ID="c265f4e8-a32f-4548-a21e-3542ec65134a"
set PQTEST_AZURE_KEY_VAULT_URL="https://myvault.vault.azure.net"
<Path to PQTest.exe>.\PQTest.exe list-credential --keyVault secretName
Credential-template
使用此命令生成 JSON 格式的凭证模板,该模板可传递到 set-credential 命令中。 该命令需要提供扩展和数据源信息。 如果数据源支持多种身份验证,则需要指定 --authenticationKind / -ak 选项要使用哪种身份验证。
输出模板具有识别为$$<密码名称>$$的占位符值,在将其传递给 set-credential 命令之前应将其替换。
例如,MyConnector
同时支持匿名和 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 格式的凭证。
- 不需要进行其他设置(
Anonymous
和Windows
)的身份验证种类的自动凭证。 - 使用交互式模式。
JSON 格式的凭证
可以使用 JSON 凭证格式设置任何凭证种类。 使用credential-template 凭证生成凭证 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"
}
注意
可以使用自动凭证设置 Anonymous
和 Windows
凭证。
以下示例为如何从存储在磁盘上的文件设置凭证(使用重定向输入):
<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"
}
自动凭证
无需提供凭证模板即可设置 Anonymous
和 Windows
凭证。
注意
默认使用当前用户的标识来设置 Windows
凭证。 使用 credential-template 命令生成可修改为使用备选 Windows 帐户凭证的 JSON 凭证。
若要生成 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 命令行选项,在交互式模式下设置凭证。
OAuth
和 Aad
身份验证种类可以使用交互式模式。 在此模式下运行此命令会出现 OAuth 对话框,可用于测试 OAuth 实现。
交互式 OAuth 流使用 WebView2 (Microsoft Edge Chromium) 浏览器组件,该组件可能需要单独安装。 请参阅适用于 Power BI Desktop 的 Power Query OAuth 文档,了解详细信息。
--useLegacyBrowser 选项可用于强制 IE11 嵌入式浏览器窗口。