凭据
可以在命令之间缓存和重复使用数据源凭据。 默认情况下,此缓存存储在 %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 格式的凭据。
- 用于身份验证类型的自动凭据,无需其他设置(
Anonymous
和Windows
)。 - 使用交互模式。
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"
}
注意
可以通过使用自动凭据来设置 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
凭据默认使用当前用户的身份。 使用 凭据模板命令 生成 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 命令行选项来设置凭据。
交互式模式可用于 OAuth
和 Aad
身份验证类型。 在此模式下运行命令会显示可用于测试 OAuth 实现的 OAuth 对话框。
交互式 OAuth 流使用 WebView2(Microsoft Edge Chromium)浏览器组件,可能需要单独安装。 可以在 Power BI Desktop 的 Power Query OAuth 文档中找到更多详细信息。
--useLegacyBrowser 选项可用于强制使用 IE11 嵌入式浏览器窗口。