Skip to content
Last updated

APIを使用したポリシーベースのデータベース権限の設定

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権限の設定

ユーザーのデータベースアクセスを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>}
    ]
}'

APIを使用したデータベースポリシーの更新

以下の呼び出しを行うことで、データベースポリシーを更新できます。

  1. ポリシー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"}
  ]
}
  1. 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"}
    ]
}'