# 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_として表示されます) | 詳細は[ポリシーベースのデータベース権限について](/products/control-panel/security/policies/about-policy-based-database-permissions)をご覧ください。 ## データベース管理権限の設定 manage権限を使用して、ユーザーにデータベースへのフルアクセスを付与できます。これにより、owner_manage、download、edit、query、importを含むすべての権限に加えて、アカウント内のデータベースに対するあらゆる操作を実行する権限がユーザーに付与されます。 ```bash $ curl --location --request PATCH \ 'https://api.treasuredata.com/v3/access_control/policies//permissions' \ --header 'Authorization: TD1 ' \ --header 'Content-Type: application/json' \ --data-raw '{"Databases": [{"operation": "manage"}]}' ``` ## データベースダウンロード権限の設定 ユーザーのデータベースアクセスをdownloadに設定し、指定されたデータベースをダウンロードする権限を付与します。 ```bash $ curl 'https://{{host}}/v3/access_control/policies/{{policy_id}}/permissions' \ -X 'PATCH' \ --data-raw '{"Databases":[{"operation":"download"}]}' ``` ## データベースOwner_Manage権限の設定 ユーザーのデータベースアクセスをowner_manageに設定し、自分のデータベースを管理する権限を付与します。 ```bash curl 'https://{{host}}/v3/access_control/policies/{{policy_id}}/permissions' \ -X 'PATCH' \ --data-raw '{"Databases":[{"operation":"owner_manage"}]}' ``` ## データベースインポート権限の設定 ユーザーのデータベースアクセスをimportに設定し、アカウント内のデータベースに対してデータインポートジョブを実行する権限を付与します。 ```bash curl --location --request PATCH 'https://api.treasuredata.com/v3/access_control/policies//permissions' \ --header 'Authorization: TD1 ' \ --header 'Content-Type: application/json' \ --data-raw '{ "Databases": [ {"operation": "import", "ids": } ] } ' ``` ## データベースクエリ権限の設定 ユーザーのデータベースアクセスをqueryに設定し、アカウント内の特定のデータベースを表示してクエリを実行する権限を付与します。 ```bash curl --location --request PATCH 'https://api.treasuredata.com/v3/access_control/policies//permissions' \ --header 'Authorization: TD1 ' \ --header 'Content-Type: application/json' \ --data-raw '{ "Databases": [ {"operation": "query", "ids": } ] } ' ``` ## データベース編集権限の設定 ユーザーのデータベース権限をeditに設定し、アカウント内のデータベースを編集する権限を付与します。 ```bash curl --location --request PATCH 'https://api.treasuredata.com/v3/access_control/policies//permissions' \ --header 'Authorization: TD1 ' \ --header 'Content-Type: application/json' \ --data-raw '{ "Databases": [ {"operation": "edit", "ids": } ] }' ``` ## APIを使用したデータベースポリシーの更新 以下の呼び出しを行うことで、データベースポリシーを更新できます。 1. ポリシーIDを使用して、更新したいポリシーを取得します。例えば、ポリシーの現在の権限を表示できます:database(10)への_manage_、*edit*、database(1,2,3)への_query_、database(5,4)への_import_。 ```bash curl --location --request GET 'https://api.treasuredata.com/v3/access_control/policies//permissions' \ --header 'Authorization: TD1 ' ``` ```json { "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_のように更新できます。 ```bash curl --location --request PATCH 'https://api.treasuredata.com/v3/access_control/policies//permissions' \ --header 'Authorization: TD1 ' \ --header 'Content-Type: application/json' \ --data-raw '{ "Databases": [ {"operation": "manage"}, {"operation": "query", "ids": "1,3"}, {"operation": "import", "ids": "2,5,6"} ] }' ```