Update a database token
Use the influxctl
CLI
or the Management HTTP API
to update a database token’s permissions InfluxDB Cloud Dedicated cluster.
Use the influxctl token update
command
to update a database token’s permissions in your InfluxDB Cloud Dedicated cluster.
-
If you haven’t already, download and install the
influxctl
CLI, and then configure aninfluxctl
connection profile for your cluster. -
To list token IDs, run the
influxctl token list
command in your terminal.influxctl token list
Copy the token ID of the token you want to update.
-
In your terminal, run the
influxctl token update
command and provide the following:-
Token permissions (read and write)
--read-database
: Grants read permissions to the specified database. Repeatable.--write-database
: Grants write permissions to the specified database. Repeatable.
Both of these flags support the
*
wildcard which grants read or write permissions to all databases. Enclose wildcards in single or double quotes–for example:'*'
or"*"
. -
the token ID
-
influxctl token update \
--description "my updated test token" \
--read-database DATABASE_NAME \
--write-database DATABASE_NAME \
TOKEN_ID
Replace the following:
DATABASE_NAME
: your InfluxDB Cloud Dedicated database-TOKEN ID
: ID of the token to update
This example uses cURL to send a Management HTTP API request, but you can use any HTTP client.
-
If you haven’t already, follow the instructions to install cURL for your system.
-
In your terminal, use cURL to send a request to the following InfluxDB Cloud Dedicated endpoint:
PATCH https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/tokens/TOKEN_ID
In the URL, provide the following:
ACCOUNT_ID
: The ID of the account that the cluster belongs to (see how to list cluster details).CLUSTER_ID
: The ID of the cluster that you want to manage (see how to list cluster details).TOKEN_ID
: The ID of the database token that you want to update (see how to list token details).
Provide the following request headers:
Accept: application/json
to ensure the response body is JSON contentContent-Type: application/json
to indicate the request body is JSON contentAuthorization: Bearer
and a Management API token for your cluster (see how to create a management token for Management API requests).
In the request body, provide the following parameters:
permissions
: an array of token permissions (read or write) objects:"action"
: Specifyread
orwrite
permission to the database."resource"
: Specify the database name.
description
: Provide a description of the token.
The following example shows how to use the Management API to update a token’s permissions:
curl \
--location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/tokens/TOKEN_ID" \
--request PATCH \
--header "Accept: application/json" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer MANAGEMENT_TOKEN" \
--data '{
"description": "my updated test token",
"permissions": [
{
"action": "read",
"resource": "DATABASE_NAME"
},
{
"action": "write",
"resource": "DATABASE_NAME"
}
]
}'
Replace the following in your request:
: the ID of the InfluxDB Cloud Dedicated account to create the database token forACCOUNT_ID
: the ID of the InfluxDB Cloud Dedicated cluster to create the database token forCLUSTER_IDMANAGEMENT TOKEN
: a management token for your InfluxDB Cloud Dedicated cluster
: a InfluxDB Cloud Dedicated database that the token will have read or write permission toDATABASE_NAME
Existing permissions are replaced on update
When updating token permissions, the existing permissions are replaced by the new permissions specified in the update command. To retain existing permissions, include them in the update command.
Examples
- Update a token with read and write access to a database
- Update a token with read and write access to all databases
- Update a token with read-only access to a database
- Update a token with read-only access to multiple databases
- Update a token with mixed permissions to multiple databases
In the examples below, replace the following:
DATABASE_NAME
: your InfluxDB Cloud Dedicated databaseDATABASE2_NAME
: your InfluxDB Cloud Dedicated databaseTOKEN ID
: ID of the token to updateACCOUNT_ID
: the ID of the InfluxDB Cloud Dedicated account to create the database token forCLUSTER_ID
: the ID of the InfluxDB Cloud Dedicated cluster to create the database token forMANAGEMENT TOKEN
: a management token for your InfluxDB Cloud Dedicated cluster
Update a token for read and write access to a database
influxctl token update \
--description "Read/write to DATABASE_NAME" \
--read-database DATABASE_NAME \
--write-database DATABASE_NAME \
TOKEN_ID
curl \
--location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/tokens/TOKEN_ID" \
--request PATCH \
--header "Accept: application/json" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer MANAGEMENT_TOKEN" \
--data '{
"description": "Read/write to DATABASE_NAME",
"permissions": [
{
"action": "read",
"resource": "DATABASE_NAME"
},
{
"action": "write",
"resource": "DATABASE_NAME"
}
]
}'
Update a token with read and write access to all databases
influxctl token update \
--read-database "*" \
--write-database "*" \
TOKEN_ID
curl \
--location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/tokens/TOKEN_ID" \
--request PATCH \
--header "Accept: application/json" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer MANAGEMENT_TOKEN" \
--data '{
"permissions": [
{
"action": "read",
"resource": "*"
},
{
"action": "write",
"resource": "*"
}
]
}'
Update a token for read-only access to a database
influxctl token update \
--read-database DATABASE_NAME \
TOKEN_ID
curl \
--location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/tokens/TOKEN_ID" \
--request PATCH \
--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"
}
]
}'
Update a token to provide read-only access to multiple databases
influxctl token update \
--description "Read-only token for DATABASE_NAME and DATABASE2_NAME" \
--read-database DATABASE_NAME \
--read-database DATABASE2_NAME \
TOKEN_ID
curl \
--location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/tokens/TOKEN_ID" \
--request PATCH \
--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"
}
]
}'
Update a token to provide mixed permissions to multiple databases
influxctl token update \
--read-database DATABASE_NAME \
--read-database DATABASE2_NAME \
--write-database DATABASE2_NAME \
TOKEN_ID
curl \
--location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/tokens/TOKEN_ID" \
--request PATCH \
--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"
},
]
}'
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.