ツール: update_user
Cloud SQL インスタンスのデータベース ユーザーを更新します。update_user の一般的なユースケースは、ユーザーに cloudsqlsuperuser ロールを付与することです。これにより、ユーザーに必要な権限を多数付与できます。
このツールは、ユーザーを更新してデータベース ロールを割り当てる場合にのみ使用できます。
- このツールは、長時間実行オペレーションを返します。
get_operationツールを使用して、オペレーションが完了するまでステータスをポーリングします。 update_userツールを呼び出す前に、list_usersツールを使用して、ユーザーの既存の構成(ユーザータイプなど)を必ず確認してください。- MySQL の特殊なケースとして、
list_usersツールがiamEmailフィールドに完全なメールアドレス({name=test-account, iamEmail=test-account@project-id.iam.gserviceaccount.com}など)を返す場合は、update_userリクエストで、ツールリクエストのnameフィールドのiamEmailフィールドに完全なメールアドレスを使用します。(例:name=test-account@project-id.iam.gserviceaccount.com)。
ユーザーロールの更新に関する主なパラメータは次のとおりです。
database_roles: ユーザーに割り当てるデータベース ロールのリスト。revokeExistingRoles: 既存のロールの処理方法を制御するブール値フィールド(デフォルト: false)。
ロールの更新の仕組み:
revokeExistingRolesが true の場合:- ユーザーに付与されている既存のロールのうち、指定された
database_rolesリストに含まれていないロールは取り消されます。 - 取り消しはシステム以外のロールにのみ適用されます。
cloudsqliamuserなどのシステムロールは取り消されません。 - ユーザーがまだ持っていない
database_rolesリスト内のロールはすべて付与されます。 database_rolesが空の場合、既存のシステムロール以外のすべてのロールが取り消されます。
- ユーザーに付与されている既存のロールのうち、指定された
revokeExistingRolesが false の場合(デフォルト):- ユーザーがまだ持っていない
database_rolesリスト内のロールはすべて付与されます。 database_rolesリストにない既存のロールは保持されます。database_rolesが空の場合、ユーザーのロールは変更されません。
- ユーザーがまだ持っていない
例:
既存のロール:
[roleA, roleB]- リクエスト:
database_roles: [roleB, roleC], revokeExistingRoles: true - 結果:
roleAを取り消し、roleCを付与します。ユーザーロールが[roleB, roleC]になります。
- リクエスト:
database_roles: [roleB, roleC], revokeExistingRoles: false - 結果:
roleCを付与します。ユーザーロールが[roleA, roleB, roleC]になります。
- リクエスト:
database_roles: [], revokeExistingRoles: true - 結果:
roleAを取り消し、roleBを取り消します。ユーザーロールが[]になります。
- リクエスト:
database_roles: [], revokeExistingRoles: false - 結果: 変更なし。ユーザーロールは
[roleA, roleB]のままです。
- リクエスト:
次のサンプルは、curl を使用して update_user MCP ツールを呼び出す方法を示しています。
| Curl リクエスト |
|---|
curl --location 'https://sqladmin.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "update_user", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
入力スキーマ
MCP のユーザー更新リクエスト。
SqlUsersUpdateMcpRequest
| JSON 表現 |
|---|
{ "host": string, "instance": string, "name": string, "project": string, "databaseRoles": [ string ], "type": enum ( |
| フィールド | |
|---|---|
host |
省略可。インスタンスのユーザーのホスト。 |
instance |
必須。データベース インスタンス ID。プロジェクト ID は含みません。 |
name |
必須。インスタンスのユーザーの名前。 |
project |
必須。インスタンスを含むプロジェクトのプロジェクト ID。 |
databaseRoles[] |
省略可。ユーザーに付与するデータベース ロールのリスト。更新リクエストでは body.database_roles は無視されます。 |
type |
必須。ユーザータイプ。ログイン時にユーザーを認証する方法を決定します。デフォルトはデータベースの組み込みユーザー型です。 |
共用体フィールド
|
|
revokeExistingRoles |
省略可。ユーザーに付与されている既存のロールを取り消します。 |
出力スキーマ
オペレーション リソース。オペレーション リソースを返すオペレーションを成功させるため、オペレーションに関連するフィールドのみがリソースに入力されます。
オペレーション
| JSON 表現 |
|---|
{ "kind": string, "targetLink": string, "status": enum ( |
| フィールド | |
|---|---|
kind |
これは常に |
targetLink |
|
status |
オペレーションのステータス。 |
user |
このオペレーションを開始したユーザーのメールアドレス。 |
insertTime |
このオペレーションをキューに格納した時刻を、RFC 3339 形式の UTC タイムゾーンで表します。例: RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
startTime |
このオペレーションが実際に開始された時刻を、RFC 3339 形式の UTC タイムゾーンで表します。例: RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
endTime |
このオペレーションが完了した時刻を、RFC 3339 形式の UTC タイムゾーンで表します。例: RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
error |
このオペレーションの処理中にエラーが発生した場合、このフィールドにデータが設定されます。 |
apiWarning |
Admin API の警告メッセージ。 |
operationType |
オペレーションの種類。有効な値は、 |
importContext |
インポート オペレーションのコンテキスト(該当する場合)。 |
exportContext |
エクスポート オペレーションのコンテキスト(該当する場合)。 |
backupContext |
バックアップ オペレーションのコンテキスト(該当する場合)。 |
preCheckMajorVersionUpgradeContext |
このフィールドは、operation_type が PRE_CHECK_MAJOR_VERSION_UPGRADE の場合にのみ入力されます。PreCheckMajorVersionUpgradeContext メッセージ自体には、アップグレードのターゲット データベース バージョンやチェックの結果(検出された警告やエラーを含む)など、その事前チェックの詳細が含まれています。 |
name |
オペレーションを一意に識別する識別子。この識別子を使って、オペレーションに関する情報が格納されているオペレーション リソースを取得できます。 |
targetId |
このオペレーションが実行されるリソースの名前。 |
selfLink |
このリソースの URI。 |
targetProject |
このオペレーションに関連するターゲット インスタンスのプロジェクト ID。 |
acquireSsrsLeaseContext |
SSRS リース取得オペレーションのコンテキスト(該当する場合)。 |
subOperationType |
省略可。オペレーション タイプに基づくサブオペレーション。 |
タイムスタンプ
| JSON 表現 |
|---|
{ "seconds": string, "nanos": integer } |
| フィールド | |
|---|---|
seconds |
UNIX エポック 1970-01-01T00:00:00Z からの UTC 時刻の秒数を表します。-62135596800~253402300799 の範囲(両端を含む)にする必要があります(これは 0001-01-01T00:00:00Z~9999-12-31T23:59:59Z に対応します)。 |
nanos |
ナノ秒分解能による、秒の負ではない小数以下部分。このフィールドは、秒の代替ではなく、期間のナノ秒部分です。小数以下を含む負の秒の値は、時間を前方にカウントする負ではない nanos 値を持つ必要があります。0~999,999,999 にする必要があります(両端を含む)。 |
OperationErrors
| JSON 表現 |
|---|
{
"kind": string,
"errors": [
{
object ( |
| フィールド | |
|---|---|
kind |
これは常に |
errors[] |
このオペレーションの処理中に発生したエラーのリスト。 |
OperationError
| JSON 表現 |
|---|
{ "kind": string, "code": string, "message": string } |
| フィールド | |
|---|---|
kind |
これは常に |
code |
発生した具体的なエラーを示します。 |
message |
発生したエラーについての追加情報。 |
ApiWarning
| JSON 表現 |
|---|
{
"code": enum ( |
| フィールド | |
|---|---|
code |
警告タイプを一意に識別するコード。 |
message |
警告メッセージ |
region |
REGION_UNREACHABLE 警告のリージョン名。 |
ImportContext
| JSON 表現 |
|---|
{ "uri": string, "database": string, "kind": string, "fileType": enum ( |
| フィールド | |
|---|---|
uri |
Cloud Storage のインポート ファイルへのパス( |
database |
インポートのターゲット データベース。 |
kind |
これは常に |
fileType |
指定された URI のファイル形式。`SQL |
csvImportOptions |
データを CSV としてインポートするためのオプション。 |
importUser |
このインポート オペレーションの PostgreSQL ユーザー。PostgreSQL インスタンスのみ。 |
bakImportOptions |
SQL Server .BAK ファイル固有のインポート パラメータ |
sqlImportOptions |
省略可。SQL ステートメントからデータをインポートするためのオプション。 |
tdeImportOptions |
省略可。SQL Server TDE 証明書固有のインポート パラメータ |
SqlCsvImportOptions
| JSON 表現 |
|---|
{ "table": string, "columns": [ string ], "escapeCharacter": string, "quoteCharacter": string, "fieldsTerminatedBy": string, "linesTerminatedBy": string } |
| フィールド | |
|---|---|
table |
CSV データのインポート先のテーブル。 |
columns[] |
CSV データのインポート先の列。指定しない場合、データベース テーブルのすべての列に CSV データがロードされます。 |
escapeCharacter |
エスケープが必要なデータ文字の前に表示する文字を指定します。 |
quoteCharacter |
データ値を引用符で囲むときに使用する引用符文字を指定します。 |
fieldsTerminatedBy |
ファイルの各行の列を区切る文字を指定します。 |
linesTerminatedBy |
これは、行を区切るために使用されます。行にすべてのフィールドが含まれていない場合、残りの列はデフォルト値に設定されます。 |
SqlBakImportOptions
| JSON 表現 |
|---|
{ "encryptionOptions": { object ( |
| フィールド | |
|---|---|
encryptionOptions |
|
striped |
復元するバックアップ セットがストライプ化されているかどうか。Cloud SQL for SQL Server にのみ適用されます。 |
noRecovery |
バックアップのインポートで NORECOVERY オプションを使用してデータベースを復元するかどうか。Cloud SQL for SQL Server にのみ適用されます。 |
recoveryOnly |
バックアップ インポート リクエストで Bak コンテンツをダウンロードせずにデータベースをオンラインにするかどうか。no_recovery と recovery_only のいずれか 1 つのみを true にできます。それ以外の場合はエラーが返されます。Cloud SQL for SQL Server にのみ適用されます。 |
bakType |
bak コンテンツのタイプ(FULL または DIFF) |
stopAt |
省略可。インポートを停止するタイムスタンプ。このタイムスタンプは RFC 3339 形式(例: RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
stopAtMark |
省略可。インポートを停止するマーク付きトランザクション。このフィールドは STOPATMARK キーワードと同等で、Cloud SQL for SQL Server にのみ適用されます。 |
EncryptionOptions
| JSON 表現 |
|---|
{ "certPath": string, "pvkPath": string, "pvkPassword": string, "keepEncrypted": boolean } |
| フィールド | |
|---|---|
certPath |
Cloud Storage 内の証明書(.cer)へのパス( |
pvkPath |
Cloud Storage の証明書秘密鍵(.pvk)のパス( |
pvkPassword |
秘密鍵を暗号化するパスワード |
keepEncrypted |
省略可。インポートしたファイルが暗号化されたままになるかどうか。 |
BoolValue
| JSON 表現 |
|---|
{ "value": boolean } |
| フィールド | |
|---|---|
value |
ブール値。 |
SqlImportOptions
| JSON 表現 |
|---|
{
"threads": integer,
"parallel": boolean,
"postgresImportOptions": {
object ( |
| フィールド | |
|---|---|
threads |
省略可。並列インポートに使用するスレッドの数。 |
parallel |
省略可。インポートを並行して行うかどうか。 |
postgresImportOptions |
省略可。Cloud SQL for PostgreSQL インスタンスからインポートするためのオプション。 |
Int32Value
| JSON 表現 |
|---|
{ "value": integer } |
| フィールド | |
|---|---|
value |
int32 値。 |
PostgresImportOptions
| JSON 表現 |
|---|
{ "clean": boolean, "ifExists": boolean } |
| フィールド | |
|---|---|
clean |
省略可。pg_restore ユーティリティの --clean フラグ。このフラグは、Cloud SQL でファイルの並列インポートを有効にした場合にのみ適用されます。 |
ifExists |
省略可。pg_restore ユーティリティの --if-exists フラグ。このフラグは、Cloud SQL でファイルの並列インポートを有効にした場合にのみ適用されます。 |
SqlTdeImportOptions
| JSON 表現 |
|---|
{ "certificatePath": string, "privateKeyPath": string, "privateKeyPassword": string, "name": string } |
| フィールド | |
|---|---|
certificatePath |
必須。TDE 証明書の公開鍵へのパス(gs://bucketName/fileName の形式)。インスタンスには、ファイルに対する読み取りアクセス権が必要です。SQL Server インスタンスにのみ適用されます。 |
privateKeyPath |
必須。TDE 証明書の秘密鍵のパス(gs://bucketName/fileName の形式)。インスタンスには、ファイルに対する読み取りアクセス権が必要です。SQL Server インスタンスにのみ適用されます。 |
privateKeyPassword |
必須。秘密鍵を暗号化するパスワード。 |
name |
必須。証明書名。SQL Server インスタンスにのみ適用されます。 |
ExportContext
| JSON 表現 |
|---|
{ "uri": string, "databases": [ string ], "kind": string, "sqlExportOptions": { object ( |
| 項目 | |
|---|---|
uri |
エクスポートの保存先となる、Google Cloud Storage 内のファイルへのパス。URI の形式は |
databases[] |
エクスポートされるデータベース。 |
kind |
これは常に |
sqlExportOptions |
データを SQL 文としてエクスポートするためのオプション。 |
csvExportOptions |
データを CSV としてエクスポートするためのオプション。 |
fileType |
指定した URI のファイルタイプ。 |
offload |
サーバーレス エクスポートを実行するかどうか。 |
bakExportOptions |
データを BAK ファイルとしてエクスポートするためのオプション。 |
tdeExportOptions |
省略可。SQL Server TDE 証明書固有のエクスポート パラメータ |
SqlExportOptions
| JSON 表現 |
|---|
{ "tables": [ string ], "schemaOnly": boolean, "mysqlExportOptions": { object ( |
| フィールド | |
|---|---|
tables[] |
指定したデータベースからエクスポートするテーブルまたはエクスポートされたテーブル。テーブルを指定する場合は、データベースを 1 つだけ指定します。PostgreSQL インスタンスの場合、指定できるテーブルは 1 つのみです。 |
schemaOnly |
スキーマのみをエクスポートします。 |
mysqlExportOptions |
|
threads |
省略可。並列エクスポートに使用するスレッドの数。 |
parallel |
省略可。エクスポートを並行して行うかどうか。 |
postgresExportOptions |
省略可。Cloud SQL for PostgreSQL インスタンスからのエクスポート オプション。 |
MysqlExportOptions
| JSON 表現 |
|---|
{ "masterData": integer } |
| フィールド | |
|---|---|
masterData |
レプリケーションの設定に必要な SQL ステートメントを含めるオプション。 |
PostgresExportOptions
| JSON 表現 |
|---|
{ "clean": boolean, "ifExists": boolean } |
| フィールド | |
|---|---|
clean |
省略可。このオプションを使用して DROP を含めます
SQL ステートメント。これらのステートメントを使用して、インポート オペレーションを実行する前にデータベース オブジェクトを削除します。 |
ifExists |
省略可。クリーンアップによって生成される各 DROP ステートメントに IF EXISTS SQL ステートメントを含めるオプション。 |
SqlCsvExportOptions
| JSON 表現 |
|---|
{ "selectQuery": string, "escapeCharacter": string, "quoteCharacter": string, "fieldsTerminatedBy": string, "linesTerminatedBy": string } |
| フィールド | |
|---|---|
selectQuery |
データを抽出するために使用する select クエリ。 |
escapeCharacter |
エスケープが必要なデータ文字の前に表示する文字を指定します。 |
quoteCharacter |
データ値を引用符で囲むときに使用する引用符文字を指定します。 |
fieldsTerminatedBy |
ファイルの各行の列を区切る文字を指定します。 |
linesTerminatedBy |
これは、行を区切るために使用されます。行にすべてのフィールドが含まれていない場合、残りの列はデフォルト値に設定されます。 |
SqlBakExportOptions
| JSON 表現 |
|---|
{
"striped": boolean,
"stripeCount": integer,
"bakType": enum ( |
| フィールド | |
|---|---|
striped |
エクスポートをストライプ化するかどうか。 |
stripeCount |
エクスポートに使用するストライプの数を指定するオプション。空白で、ストライプ フィールドの値が true の場合、ストライプの数が自動的に選択されます。 |
bakType |
この bak ファイルのタイプ(export、FULL、DIFF)。SQL Server のみ |
copyOnly |
非推奨: copy_only は非推奨になりました。代わりに differential_base を使用する |
differentialBase |
バックアップを差分ベースとして使用できるかどうか。copy_only バックアップは差分ベースとして使用できません |
exportLogStartTime |
省略可。トランザクション ログがエクスポート オペレーションに含まれる開始タイムスタンプ。UTC の RFC 3339 形式(例: RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
exportLogEndTime |
省略可。トランザクション ログがエクスポート オペレーションに含まれる終了タイムスタンプ。UTC の RFC 3339 形式(例: RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
SqlTdeExportOptions
| JSON 表現 |
|---|
{ "certificatePath": string, "privateKeyPath": string, "privateKeyPassword": string, "name": string } |
| フィールド | |
|---|---|
certificatePath |
必須。TDE 証明書の公開鍵へのパス(gs://bucketName/fileName の形式)。インスタンスには、バケットへの書き込みアクセス権が必要です。SQL Server インスタンスにのみ適用されます。 |
privateKeyPath |
必須。TDE 証明書の秘密鍵のパス(gs://bucketName/fileName の形式)。インスタンスには、その場所への書き込み権限が必要です。SQL Server インスタンスにのみ適用されます。 |
privateKeyPassword |
必須。秘密鍵を暗号化するパスワード。 |
name |
必須。証明書名。SQL Server インスタンスにのみ適用されます。 |
BackupContext
| JSON 表現 |
|---|
{ "backupId": string, "kind": string, "name": string } |
| フィールド | |
|---|---|
backupId |
バックアップの識別子。 |
kind |
これは常に |
name |
バックアップの名前。形式: projects/{project}/backups/{backup} |
PreCheckMajorVersionUpgradeContext
| JSON 表現 |
|---|
{ "targetDatabaseVersion": enum ( |
| フィールド | |
|---|---|
targetDatabaseVersion |
必須。アップグレード先のターゲット データベース バージョン。 |
preCheckResponse[] |
出力専用。事前チェック オペレーションからのレスポンス。 |
kind |
省略可。これは常に |
PreCheckResponse
| JSON 表現 |
|---|
{ "actionsRequired": [ string ], // Union field |
| フィールド | |
|---|---|
actionsRequired[] |
ユーザーが対応する必要があるアクション。複数のアクションに repeated を使用します。 |
共用体フィールド
|
|
message |
ユーザーに表示するメッセージ。 |
共用体フィールド
|
|
messageType |
メッセージのタイプ(情報、警告、エラー)。 |
AcquireSsrsLeaseContext
| JSON 表現 |
|---|
{ // Union field |
| フィールド | |
|---|---|
共用体フィールド
|
|
setupLogin |
SSRS の設定でデータベース サーバーに接続するために設定ログインとして使用するユーザー名。 |
共用体フィールド
|
|
serviceLogin |
SSRS の設定でレポート データベースに接続するためにサービス ログインとして使用するユーザー名。 |
共用体フィールド
|
|
reportDatabase |
SSRS の設定に使用するレポート データベース。 |
共用体フィールド
|
|
duration |
SSRS の設定に必要なリースの期間。
|
所要時間
| JSON 表現 |
|---|
{ "seconds": string, "nanos": integer } |
| フィールド | |
|---|---|
seconds |
期間の符号付き秒数。-315,576,000,000 ~+315,576,000,000 の範囲(両端を含む)にする必要があります。注: これらの境界は、60 秒/分 * 60 分/時間 * 24 時間/日 * 365.25 日/年 * 10,000 年から計算されます。 |
nanos |
期間のナノ秒分解能による、秒の符号付き小数以下部分。1 秒未満の期間は、0 の |
SqlSubOperationType
| JSON 表現 |
|---|
{ // Union field |
| フィールド | |
|---|---|
共用体フィールド sub_operation_details。オペレーション タイプに対応するサブオペレーションの詳細。sub_operation_details は次のいずれかになります。 |
|
maintenanceType |
インスタンスで実行するメンテナンスのタイプ。 |
ツールのアノテーション
破壊的ヒント: ❌ | べき等ヒント: ❌ | 読み取り専用ヒント: ❌ | オープン ワールド ヒント: ❌