APIを使用してデータベース権限を設定し、個々のユーザーに特定のデータベースへのアクセスを許可できます。
各アカウントで、以下の権限を使用してデータベースへのユーザーアクセスを設定できます:
| 権限 | 説明 |
|---|---|
| Manage | ユーザーはowner_manage、download、edit、query、importを含むすべての権限を持ち、アカウント内のデータベースに対してあらゆる操作を実行できます。(TDコンソールでは_Full Access_カテゴリに表示されます) |
| Download | ユーザーは指定されたデータベースをダウンロードする権限を持ちます。(TDコンソールでは_Limited Access_カテゴリにのみ表示されます) |
| Owner_Manage | ユーザーは自分のデータベースを管理できます。(TDコンソールでは_Limited Access_カテゴリの_Manage Own Database_として表示されます) |
| Import | ユーザーはアカウント内の任意のデータベースに対してインポートジョブを実行できます。(TDコンソールでは_Import Only_として表示されます) |
| Query | ユーザーはアカウント内の任意のデータベースを表示し、クエリを実行できます。(TDコンソールでは_Query Only_として表示されます) |
| Edit | ユーザーは指定されたアカウントに対する編集権限を持ちます。(TDコンソールでは_General Access_として表示されます) |
詳細はポリシーベースのデータベース権限についてをご覧ください。
manage権限を使用して、ユーザーにデータベースへのフルアクセスを付与できます。これにより、owner_manage、download、edit、query、importを含むすべての権限に加えて、アカウント内のデータベースに対するあらゆる操作を実行する権限がユーザーに付与されます。
$ curl --location --request PATCH \
'https://api.treasuredata.com/v3/access_control/policies/<policy_id>/permissions' \
--header 'Authorization: TD1 <api_key>' \
--header 'Content-Type: application/json' \
--data-raw '{"Databases": [{"operation": "manage"}]}'ユーザーのデータベースアクセスをdownloadに設定し、指定されたデータベースをダウンロードする権限を付与します。
$ curl 'https://{{host}}/v3/access_control/policies/{{policy_id}}/permissions' \
-X 'PATCH' \
--data-raw '{"Databases":[{"operation":"download"}]}'ユーザーのデータベースアクセスをowner_manageに設定し、自分のデータベースを管理する権限を付与します。
curl 'https://{{host}}/v3/access_control/policies/{{policy_id}}/permissions' \
-X 'PATCH' \
--data-raw '{"Databases":[{"operation":"owner_manage"}]}'ユーザーのデータベースアクセスをimportに設定し、アカウント内のデータベースに対してデータインポートジョブを実行する権限を付与します。
curl --location --request PATCH 'https://api.treasuredata.com/v3/access_control/policies/<policy_id>/permissions' \
--header 'Authorization: TD1 <api_key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"Databases": [
{"operation": "import", "ids": <db_id>}
]
}
'ユーザーのデータベースアクセスをqueryに設定し、アカウント内の特定のデータベースを表示してクエリを実行する権限を付与します。
curl --location --request PATCH 'https://api.treasuredata.com/v3/access_control/policies/<policy_id>/permissions' \
--header 'Authorization: TD1 <api_key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"Databases": [
{"operation": "query", "ids": <db_id>}
]
}
'ユーザーのデータベース権限をeditに設定し、アカウント内のデータベースを編集する権限を付与します。
curl --location --request PATCH 'https://api.treasuredata.com/v3/access_control/policies/<policy_id>/permissions' \
--header 'Authorization: TD1 <api_key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"Databases": [
{"operation": "edit", "ids": <db_id>}
]
}'以下の呼び出しを行うことで、データベースポリシーを更新できます。
- ポリシーIDを使用して、更新したいポリシーを取得します。例えば、ポリシーの現在の権限を表示できます:database(10)への_manage_、edit、database(1,2,3)への_query_、database(5,4)への_import_。
curl --location --request GET 'https://api.treasuredata.com/v3/access_control/policies/<policy_id>/permissions' \
--header 'Authorization: TD1 <api_key>' {
"Databases": [
{"operation":"manage"},
{"operation": "edit", "ids": "10"},
{"operation": "query", "ids": "1,2,3"},
{"operation": "import", "ids": "5,4"}
]
}- PATCHを使用して、権限を_manage_、database(1,3)への_query_、database(2,5,6)への_import_のように更新できます。
curl --location --request PATCH 'https://api.treasuredata.com/v3/access_control/policies/<policy_id>/permissions' \
--header 'Authorization: TD1 <api_key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"Databases": [
{"operation": "manage"},
{"operation": "query", "ids": "1,3"},
{"operation": "import", "ids": "2,5,6"}
]
}'