创建数据库令牌
使用influxctl
CLI或管理HTTP API创建一个数据库令牌,以便在您的InfluxDB Cloud Dedicated集群中读取和写入数据。
使用influxctl token create
命令创建一个令牌,以便访问您的InfluxDB Cloud Dedicated集群中的数据库。
如果您尚未安装,请下载并安装
influxctl
CLI,然后为您的集群配置influxctl
连接配置文件。在终端中,运行
influxctl token create
命令并提供以下内容:令牌权限(读取和写入)
--read-database
:授予指定数据库的读取权限。可重复。--write-database
:授予指定数据库的写入权限。可重复。
这两个标志都支持
*
通配符,它授予所有数据库的读取或写入权限。用单引号或双引号括起来通配符——例如:'*'
或"*"
。令牌描述
influxctl token create \
--read-database DATABASE_NAME \
--write-database DATABASE_NAME \
"Read/write token for DATABASE_NAME"
替换以下内容:
DATABASE_NAME
:您的InfluxDB Cloud Dedicated 数据库
输出是令牌ID和令牌字符串。这是唯一一次令牌字符串以纯文本形式出现。
此示例使用cURL发送管理HTTP API请求,但您可以使用任何HTTP客户端。
如果您尚未安装,请按照说明安装cURL。
在终端中,使用cURL向以下InfluxDB Cloud Dedicated端点发送请求
POST https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/tokens
在URL中,提供以下凭据
提供以下请求头
Accept: application/json
以确保响应体是JSON内容Content-Type: application/json
以指示请求体是JSON内容Authorization: Bearer
以及一个用于您集群的 管理API令牌 (了解如何 创建管理令牌 用于管理API请求)。
在请求体中,提供以下参数
permissions
:一个包含令牌 权限(读取或写入)对象的数组"action"
:指定对数据库的read
或write
权限。"resource"
:指定数据库名称。
description
:提供令牌的描述。
以下示例展示了如何使用管理API创建数据库令牌
curl \
--location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/tokens" \
--header "Accept: application/json" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer MANAGEMENT_TOKEN" \
--data '{
"description": "Read/write token for DATABASE_NAME",
"permissions": [
{
"action": "write",
"resource": "DATABASE_NAME"
},
{
"action": "read",
"resource": "DATABASE_NAME"
}
]
}'
替换以下内容以用于您的请求
ACCOUNT_ID
:创建数据库令牌的 InfluxDB Cloud Dedicated 账户 的 IDCLUSTER_ID
:创建数据库令牌的 InfluxDB Cloud Dedicated 集群 的 IDMANAGEMENT TOKEN
:您的 InfluxDB Cloud Dedicated 集群的管理令牌 管理令牌DATABASE_NAME
:令牌将具有读取或写入权限的 InfluxDB Cloud Dedicated 数据库
响应体包含令牌 ID 和令牌字符串。 这是唯一一次以纯文本形式提供令牌字符串。
显著行为
- InfluxDB 可能需要一些时间(从几秒到几分钟)来激活和同步新令牌。如果新的数据库令牌无法立即使用(您收到
401 未授权
错误)进行查询或写入,请等待然后再次尝试。 - 令牌字符串仅在创建时可见。
将安全令牌存储在密钥库中
令牌字符串仅在创建时可见,并且不会被 InfluxDB 存储。我们建议将数据库令牌存储在 安全密钥库 中。例如,了解如何 使用操作系统密钥库中的令牌对 Telegraf 进行身份验证。
如果您丢失令牌,请从 InfluxDB 删除令牌 并创建一个新的。
输出格式
influxctl token create
命令支持 --format json
选项。默认情况下,命令输出令牌字符串。要获取 令牌详情 和更容易的编程访问命令输出,请将 --format json
包含在您的命令中,以将输出格式化为 JSON。
管理API在响应体中输出 JSON 格式。
示例
以下示例中,替换以下内容
DATABASE_NAME
:您的InfluxDB Cloud Dedicated 数据库DATABASE2_NAME
:您的 InfluxDB Cloud Dedicated 数据库ACCOUNT_ID
:创建数据库令牌的 InfluxDB Cloud Dedicated 账户 的 IDCLUSTER_ID
:创建数据库令牌的 InfluxDB Cloud Dedicated 集群 的 IDMANAGEMENT TOKEN
:您的 InfluxDB Cloud Dedicated 集群的管理令牌 管理令牌
创建具有对数据库的读取和写入访问权限的令牌
influxctl token create \
--read-database DATABASE_NAME \
--write-database DATABASE_NAME \
"Read/write token for DATABASE_NAME"
curl \
--location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/tokens" \
--header "Accept: application/json" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer MANAGEMENT_TOKEN" \
--data '{
"description": "Read/write token for DATABASE_NAME",
"permissions": [
{
"action": "write",
"resource": "DATABASE_NAME"
},
{
"action": "read",
"resource": "DATABASE_NAME"
}
]
}'
创建具有对所有数据库的读取和写入访问权限的令牌
influxctl token create \
--read-database "*" \
--write-database "*" \
"Read/write token for all databases"
curl \
--location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/tokens" \
--header "Accept: application/json" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer MANAGEMENT_TOKEN" \
--data '{
"description": "Read/write token for all databases",
"permissions": [
{
"action": "write",
"resource": "*"
},
{
"action": "read",
"resource": "*"
}
]
}'
创建具有对数据库的只读访问权限的令牌
influxctl token create \
--read-database DATABASE_NAME \
"Read-only token for DATABASE_NAME"
curl \
--location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/tokens" \
--header "Accept: application/json" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer MANAGEMENT_TOKEN" \
--data '{
"description": "Read-only token for DATABASE_NAME",
"permissions": [
{
"action": "read",
"resource": "DATABASE_NAME"
}
]
}'
创建具有对多个数据库的只读访问权限的令牌
influxctl token create \
--read-database DATABASE_NAME \
--read-database DATABASE2_NAME \
"Read-only token for DATABASE_NAME and DATABASE2_NAME"
curl \
--location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/tokens" \
--header "Accept: application/json" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer MANAGEMENT_TOKEN" \
--data '{
"description": "Read-only token for DATABASE_NAME and DATABASE2_NAME",
"permissions": [
{
"action": "read",
"resource": "DATABASE_NAME"
},
{
"action": "read",
"resource": "DATABASE2_NAME"
}
]
}'
创建对多个数据库具有混合权限的令牌
influxctl token create \
--read-database DATABASE_NAME \
--read-database DATABASE2_NAME \
--write-database DATABASE2_NAME \
"Read-only on DATABASE_NAME, read/write on DATABASE2_NAME"
curl \
--location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/tokens" \
--header "Accept: application/json" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer MANAGEMENT_TOKEN" \
--data '{
"description": "Read-only on DATABASE_NAME, read/write on DATABASE2_NAME",
"permissions": [
{
"action": "read",
"resource": "DATABASE_NAME"
},
{
"action": "read",
"resource": "DATABASE2_NAME"
},
{
"action": "write",
"resource": "DATABASE2_NAME"
},
]
}'
此页面有帮助吗?
感谢您的反馈!