Alat: update_user
Memperbarui pengguna database untuk instance Cloud SQL. Kasus penggunaan umum untuk update_user adalah memberikan peran cloudsqlsuperuser kepada pengguna, yang dapat memberikan banyak izin yang diperlukan kepada pengguna.
Alat ini hanya mendukung pembaruan pengguna untuk menetapkan peran database.
- Alat ini menampilkan operasi yang berjalan lama. Gunakan alat
get_operationuntuk melakukan polling statusnya hingga operasi selesai. - Sebelum memanggil alat
update_user, selalu periksa konfigurasi pengguna yang ada, seperti jenis pengguna dengan alatlist_users. - Sebagai kasus khusus untuk MySQL, jika alat
list_usersmenampilkan alamat email lengkap untuk kolomiamEmail, misalnya{name=test-account, iamEmail=test-account@project-id.iam.gserviceaccount.com}, maka dalam permintaanupdate_user, gunakan alamat email lengkap di kolomiamEmailpada kolomnamepermintaan alat Anda. Misalnya,name=test-account@project-id.iam.gserviceaccount.com.
Parameter utama untuk memperbarui peran pengguna:
database_roles: Daftar peran database yang akan ditetapkan kepada pengguna.revokeExistingRoles: Kolom boolean (default: false) yang mengontrol cara penanganan peran yang ada.
Cara kerja pembaruan peran:
Jika
revokeExistingRolesbernilai benar:- Semua peran yang sudah ada yang diberikan kepada pengguna tetapi TIDAK ada dalam daftar
database_rolesyang diberikan akan DICABUT. - Mencabut hanya berlaku untuk peran non-sistem. Peran sistem seperti
cloudsqliamuser, dll. tidak akan dicabut. - Semua peran dalam daftar
database_rolesyang BELUM dimiliki pengguna akan DIBERIKAN. - Jika
database_roleskosong, semua peran non-sistem yang ada akan dibatalkan.
- Semua peran yang sudah ada yang diberikan kepada pengguna tetapi TIDAK ada dalam daftar
Jika
revokeExistingRolessalah (default):- Semua peran dalam daftar
database_rolesyang BELUM dimiliki pengguna akan DIBERIKAN. - Peran yang ada yang TIDAK ada dalam daftar
database_rolesakan TETAP ADA. - Jika
database_roleskosong, tidak ada perubahan pada peran pengguna.
- Semua peran dalam daftar
Contoh:
Peran yang Ada:
[roleA, roleB]- Permintaan:
database_roles: [roleB, roleC], revokeExistingRoles: true - Hasil: Mencabut
roleA, MemberikanroleC. Peran pengguna menjadi[roleB, roleC].
- Permintaan:
database_roles: [roleB, roleC], revokeExistingRoles: false - Hasil: Hibah
roleC. Peran pengguna menjadi[roleA, roleB, roleC].
- Permintaan:
database_roles: [], revokeExistingRoles: true - Hasil: Mencabut
roleA, MencabutroleB. Peran pengguna menjadi[].
- Permintaan:
database_roles: [], revokeExistingRoles: false - Hasil: Tidak ada perubahan. Peran pengguna tetap
[roleA, roleB].
- Permintaan:
Contoh berikut menunjukkan cara menggunakan curl untuk memanggil alat MCP update_user.
| Permintaan 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 }' |
Skema Input
Permintaan pembaruan pengguna untuk MCP.
SqlUsersUpdateMcpRequest
| Representasi JSON |
|---|
{ "host": string, "instance": string, "name": string, "project": string, "databaseRoles": [ string ], "type": enum ( |
| Kolom | |
|---|---|
host |
Opsional. Host pengguna di instance. |
instance |
Wajib. ID instance database. Hal ini tidak mencakup project ID. |
name |
Wajib. Nama pengguna di instance. |
project |
Wajib. Project ID project yang berisi instance. |
databaseRoles[] |
Opsional. Daftar peran database yang akan diberikan kepada pengguna. body.database_roles akan diabaikan untuk permintaan update. |
type |
Wajib. Jenis pengguna. Menentukan metode untuk mengautentikasi pengguna selama login. Defaultnya adalah jenis pengguna bawaan database. |
Kolom union
|
|
revokeExistingRoles |
Opsional. Mencabut peran yang ada yang diberikan kepada pengguna. |
Skema Output
Resource Operasi. Untuk operasi yang berhasil dan menampilkan resource Operasi, hanya kolom yang relevan dengan operasi yang diisi dalam resource.
Operasi
| Representasi JSON |
|---|
{ "kind": string, "targetLink": string, "status": enum ( |
| Kolom | |
|---|---|
kind |
Nilai ini selalu |
targetLink |
|
status |
Status operasi. |
user |
Alamat email pengguna yang memulai operasi ini. |
insertTime |
Waktu operasi ini dimasukkan dalam antrean di zona waktu UTC dalam format RFC 3339, misalnya Menggunakan RFC 3339 yang outputnya akan selalu dinormalisasi Z dan menggunakan 0, 3, 6, atau 9 digit pecahan. Offset selain "Z" juga diterima. Contoh: |
startTime |
Waktu operasi ini benar-benar dimulai dalam zona waktu UTC dalam format RFC 3339, misalnya Menggunakan RFC 3339 yang outputnya akan selalu dinormalisasi Z dan menggunakan 0, 3, 6, atau 9 digit pecahan. Offset selain "Z" juga diterima. Contoh: |
endTime |
Waktu selesainya operasi ini dalam zona waktu UTC dalam format RFC 3339, misalnya Menggunakan RFC 3339 yang outputnya akan selalu dinormalisasi Z dan menggunakan 0, 3, 6, atau 9 digit pecahan. Offset selain "Z" juga diterima. Contoh: |
error |
Jika terjadi error selama pemrosesan operasi ini, kolom ini akan diisi. |
apiWarning |
Pesan peringatan Admin API. |
operationType |
Jenis operasi. Nilai yang valid adalah: * |
importContext |
Konteks untuk operasi impor, jika ada. |
exportContext |
Konteks untuk operasi ekspor, jika berlaku. |
backupContext |
Konteks untuk operasi pencadangan, jika ada. |
preCheckMajorVersionUpgradeContext |
Kolom ini hanya diisi jika operation_type adalah PRE_CHECK_MAJOR_VERSION_UPGRADE. Pesan PreCheckMajorVersionUpgradeContext itu sendiri berisi detail untuk pra-pemeriksaan tersebut, seperti versi database target untuk upgrade dan hasil pemeriksaan (termasuk peringatan atau error yang ditemukan). |
name |
ID yang mengidentifikasi operasi secara unik. Anda dapat menggunakan ID ini untuk mengambil resource Operasi yang memiliki informasi tentang operasi. |
targetId |
Nama resource tempat operasi ini berjalan. |
selfLink |
URI resource ini. |
targetProject |
ID project instance target yang terkait dengan operasi ini. |
acquireSsrsLeaseContext |
Konteks untuk operasi perolehan sewa SSRS, jika berlaku. |
subOperationType |
Opsional. Sub-operasi berdasarkan jenis operasi. |
Stempel waktu
| Representasi JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Kolom | |
|---|---|
seconds |
Mewakili detik waktu UTC sejak epoch Unix 1970-01-01T00:00:00Z. Harus antara -62135596800 dan 253402300799 inklusif (yang sesuai dengan 0001-01-01T00:00:00Z hingga 9999-12-31T23:59:59Z). |
nanos |
Pecahan detik non-negatif pada resolusi nanodetik. Kolom ini adalah bagian nanodetik dari durasi, bukan alternatif untuk detik. Nilai detik negatif dengan pecahan harus tetap memiliki nilai nanos non-negatif yang dihitung maju dalam waktu. Harus antara 0 dan 999.999.999 inklusif. |
OperationErrors
| Representasi JSON |
|---|
{
"kind": string,
"errors": [
{
object ( |
| Kolom | |
|---|---|
kind |
Nilai ini selalu |
errors[] |
Daftar error yang terjadi saat memproses operasi ini. |
OperationError
| Representasi JSON |
|---|
{ "kind": string, "code": string, "message": string } |
| Kolom | |
|---|---|
kind |
Nilai ini selalu |
code |
Mengidentifikasi error spesifik yang terjadi. |
message |
Informasi tambahan tentang error yang terjadi. |
ApiWarning
| Representasi JSON |
|---|
{
"code": enum ( |
| Kolom | |
|---|---|
code |
Kode untuk mengidentifikasi jenis peringatan secara unik. |
message |
Pesan peringatan. |
region |
Nama wilayah untuk peringatan REGION_UNREACHABLE. |
ImportContext
| Representasi JSON |
|---|
{ "uri": string, "database": string, "kind": string, "fileType": enum ( |
| Kolom | |
|---|---|
uri |
Jalur ke file impor di Cloud Storage, dalam bentuk |
database |
Database target untuk impor. Jika |
kind |
Nilai ini selalu |
fileType |
Jenis file untuk URI yang ditentukan.`SQL |
csvImportOptions |
Opsi untuk mengimpor data sebagai CSV. |
importUser |
Pengguna PostgreSQL untuk operasi impor ini. Khusus instance PostgreSQL. |
bakImportOptions |
Parameter impor khusus untuk file .BAK SQL Server |
sqlImportOptions |
Opsional. Opsi untuk mengimpor data dari pernyataan SQL. |
tdeImportOptions |
Opsional. Mengimpor parameter khusus untuk sertifikat TDE SQL Server |
SqlCsvImportOptions
| Representasi JSON |
|---|
{ "table": string, "columns": [ string ], "escapeCharacter": string, "quoteCharacter": string, "fieldsTerminatedBy": string, "linesTerminatedBy": string } |
| Kolom | |
|---|---|
table |
Tabel tempat data CSV diimpor. |
columns[] |
Kolom tempat data CSV diimpor. Jika tidak ditentukan, semua kolom tabel database akan dimuat dengan data CSV. |
escapeCharacter |
Menentukan karakter yang akan muncul sebelum karakter data yang perlu di-escape. |
quoteCharacter |
Menentukan karakter kutipan yang akan digunakan saat nilai data dikutip. |
fieldsTerminatedBy |
Menentukan karakter yang memisahkan kolom dalam setiap baris (baris) file. |
linesTerminatedBy |
Ini digunakan untuk memisahkan baris. Jika baris tidak berisi semua kolom, kolom lainnya akan ditetapkan ke nilai defaultnya. |
SqlBakImportOptions
| Representasi JSON |
|---|
{ "encryptionOptions": { object ( |
| Kolom | |
|---|---|
encryptionOptions |
|
striped |
Apakah set cadangan yang dipulihkan di-striping atau tidak. Hanya berlaku untuk Cloud SQL untuk SQL Server. |
noRecovery |
Apakah pengimporan cadangan akan memulihkan database dengan opsi NORECOVERY atau tidak. Hanya berlaku untuk Cloud SQL untuk SQL Server. |
recoveryOnly |
Apakah permintaan impor cadangan hanya akan mengaktifkan database tanpa mendownload konten Bak. Hanya salah satu dari "no_recovery" dan "recovery_only" yang dapat bernilai benar, jika tidak, error akan ditampilkan. Hanya berlaku untuk Cloud SQL untuk SQL Server. |
bakType |
Jenis konten bak, FULL atau DIFF |
stopAt |
Opsional. Stempel waktu saat impor harus berhenti. Stempel waktu ini dalam format RFC 3339 (misalnya, Menggunakan RFC 3339 yang outputnya akan selalu dinormalisasi Z dan menggunakan 0, 3, 6, atau 9 digit pecahan. Offset selain "Z" juga diterima. Contoh: |
stopAtMark |
Opsional. Transaksi yang ditandai tempat impor harus dihentikan. Kolom ini setara dengan kata kunci STOPATMARK dan hanya berlaku untuk Cloud SQL untuk SQL Server. |
EncryptionOptions
| Representasi JSON |
|---|
{ "certPath": string, "pvkPath": string, "pvkPassword": string, "keepEncrypted": boolean } |
| Kolom | |
|---|---|
certPath |
Jalur ke Sertifikat (.cer) di Cloud Storage, dalam bentuk |
pvkPath |
Jalur ke Kunci Pribadi Sertifikat (.pvk) di Cloud Storage, dalam bentuk |
pvkPassword |
Sandi yang mengenkripsi kunci pribadi |
keepEncrypted |
Opsional. Apakah file yang diimpor tetap dienkripsi. |
BoolValue
| Representasi JSON |
|---|
{ "value": boolean } |
| Kolom | |
|---|---|
value |
Nilai bool. |
SqlImportOptions
| Representasi JSON |
|---|
{
"threads": integer,
"parallel": boolean,
"postgresImportOptions": {
object ( |
| Kolom | |
|---|---|
threads |
Opsional. Jumlah thread yang akan digunakan untuk impor paralel. |
parallel |
Opsional. Apakah impor harus paralel atau tidak. |
postgresImportOptions |
Opsional. Opsi untuk mengimpor dari instance Cloud SQL untuk PostgreSQL. |
Int32Value
| Representasi JSON |
|---|
{ "value": integer } |
| Kolom | |
|---|---|
value |
Nilai int32. |
PostgresImportOptions
| Representasi JSON |
|---|
{ "clean": boolean, "ifExists": boolean } |
| Kolom | |
|---|---|
clean |
Opsional. Flag --clean untuk utilitas pg_restore. Flag ini hanya berlaku jika Anda mengaktifkan Cloud SQL untuk mengimpor file secara paralel. |
ifExists |
Opsional. Flag --if-exists untuk utilitas pg_restore. Flag ini hanya berlaku jika Anda mengaktifkan Cloud SQL untuk mengimpor file secara paralel. |
SqlTdeImportOptions
| Representasi JSON |
|---|
{ "certificatePath": string, "privateKeyPath": string, "privateKeyPassword": string, "name": string } |
| Kolom | |
|---|---|
certificatePath |
Wajib. Jalur ke kunci publik sertifikat TDE dalam bentuk gs://bucketName/fileName. Instance harus memiliki akses baca ke file. Hanya berlaku untuk instance SQL Server. |
privateKeyPath |
Wajib. Jalur ke kunci pribadi sertifikat TDE dalam bentuk gs://bucketName/fileName. Instance harus memiliki akses baca ke file. Hanya berlaku untuk instance SQL Server. |
privateKeyPassword |
Wajib. Sandi yang mengenkripsi kunci pribadi. |
name |
Wajib. Nama sertifikat. Hanya berlaku untuk instance SQL Server. |
ExportContext
| Representasi JSON |
|---|
{ "uri": string, "databases": [ string ], "kind": string, "sqlExportOptions": { object ( |
| Kolom | |
|---|---|
uri |
Jalur ke file di Google Cloud Storage tempat penyimpanan hasil ekspor. URI berbentuk |
databases[] |
Database yang akan diekspor. |
kind |
Nilai ini selalu |
sqlExportOptions |
Opsi untuk mengekspor data sebagai pernyataan SQL. |
csvExportOptions |
Opsi untuk mengekspor data sebagai CSV. Hanya instance |
fileType |
Jenis file untuk URI yang ditentukan. |
offload |
Apakah akan melakukan ekspor serverless atau tidak. |
bakExportOptions |
Opsi untuk mengekspor data sebagai file BAK. |
tdeExportOptions |
Opsional. Mengekspor parameter khusus untuk sertifikat TDE SQL Server |
SqlExportOptions
| Representasi JSON |
|---|
{ "tables": [ string ], "schemaOnly": boolean, "mysqlExportOptions": { object ( |
| Kolom | |
|---|---|
tables[] |
Tabel yang akan diekspor, atau yang telah diekspor, dari database yang ditentukan. Jika Anda menentukan tabel, tentukan satu dan hanya satu database. Untuk instance PostgreSQL, Anda hanya dapat menentukan satu tabel. |
schemaOnly |
Hanya mengekspor skema. |
mysqlExportOptions |
|
threads |
Opsional. Jumlah thread yang akan digunakan untuk ekspor paralel. |
parallel |
Opsional. Apakah ekspor harus paralel atau tidak. |
postgresExportOptions |
Opsional. Opsi untuk mengekspor dari instance Cloud SQL untuk PostgreSQL. |
MysqlExportOptions
| Representasi JSON |
|---|
{ "masterData": integer } |
| Kolom | |
|---|---|
masterData |
Opsi untuk menyertakan pernyataan SQL yang diperlukan untuk menyiapkan replikasi. Jika disetel ke |
PostgresExportOptions
| Representasi JSON |
|---|
{ "clean": boolean, "ifExists": boolean } |
| Kolom | |
|---|---|
clean |
Opsional. Gunakan opsi ini untuk menyertakan DROP
Pernyataan SQL. Gunakan pernyataan ini untuk menghapus objek database sebelum menjalankan operasi impor. |
ifExists |
Opsional. Opsi untuk menyertakan pernyataan SQL IF EXISTS dengan setiap pernyataan DROP yang dihasilkan oleh clean. |
SqlCsvExportOptions
| Representasi JSON |
|---|
{ "selectQuery": string, "escapeCharacter": string, "quoteCharacter": string, "fieldsTerminatedBy": string, "linesTerminatedBy": string } |
| Kolom | |
|---|---|
selectQuery |
Kueri pemilihan yang digunakan untuk mengekstrak data. |
escapeCharacter |
Menentukan karakter yang akan muncul sebelum karakter data yang perlu di-escape. |
quoteCharacter |
Menentukan karakter kutipan yang akan digunakan saat nilai data dikutip. |
fieldsTerminatedBy |
Menentukan karakter yang memisahkan kolom dalam setiap baris (baris) file. |
linesTerminatedBy |
Ini digunakan untuk memisahkan baris. Jika baris tidak berisi semua kolom, kolom lainnya akan ditetapkan ke nilai defaultnya. |
SqlBakExportOptions
| Representasi JSON |
|---|
{
"striped": boolean,
"stripeCount": integer,
"bakType": enum ( |
| Kolom | |
|---|---|
striped |
Apakah ekspor harus ditampilkan dalam format bergaris atau tidak. |
stripeCount |
Opsi untuk menentukan jumlah garis yang akan digunakan untuk ekspor. Jika kosong, dan nilai kolom bergaris adalah benar (true), jumlah garis akan dipilih secara otomatis. |
bakType |
Jenis file bak ini adalah export, FULL, atau DIFF, khusus SQL Server |
copyOnly |
Tidak digunakan lagi: copy_only tidak digunakan lagi. Gunakan differential_base |
differentialBase |
Apakah cadangan dapat digunakan sebagai basis diferensial atau tidak, cadangan copy_only tidak dapat ditayangkan sebagai basis diferensial |
exportLogStartTime |
Opsional. Stempel waktu awal saat log transaksi akan disertakan dalam operasi ekspor. Format RFC 3339 (misalnya, Menggunakan RFC 3339 yang outputnya akan selalu dinormalisasi Z dan menggunakan 0, 3, 6, atau 9 digit pecahan. Offset selain "Z" juga diterima. Contoh: |
exportLogEndTime |
Opsional. Stempel waktu akhir saat log transaksi akan disertakan dalam operasi ekspor. Format RFC 3339 (misalnya, Menggunakan RFC 3339 yang outputnya akan selalu dinormalisasi Z dan menggunakan 0, 3, 6, atau 9 digit pecahan. Offset selain "Z" juga diterima. Contoh: |
SqlTdeExportOptions
| Representasi JSON |
|---|
{ "certificatePath": string, "privateKeyPath": string, "privateKeyPassword": string, "name": string } |
| Kolom | |
|---|---|
certificatePath |
Wajib. Jalur ke kunci publik sertifikat TDE dalam bentuk gs://bucketName/fileName. Instance harus memiliki akses tulis ke bucket. Hanya berlaku untuk instance SQL Server. |
privateKeyPath |
Wajib. Jalur ke kunci pribadi sertifikat TDE dalam bentuk gs://bucketName/fileName. Instance harus memiliki akses tulis ke lokasi. Hanya berlaku untuk instance SQL Server. |
privateKeyPassword |
Wajib. Sandi yang mengenkripsi kunci pribadi. |
name |
Wajib. Nama sertifikat. Hanya berlaku untuk instance SQL Server. |
BackupContext
| Representasi JSON |
|---|
{ "backupId": string, "kind": string, "name": string } |
| Kolom | |
|---|---|
backupId |
ID cadangan. |
kind |
Nilai ini selalu |
name |
Nama cadangan. Format: projects/{project}/backups/{backup} |
PreCheckMajorVersionUpgradeContext
| Representasi JSON |
|---|
{ "targetDatabaseVersion": enum ( |
| Kolom | |
|---|---|
targetDatabaseVersion |
Wajib. Versi database target yang akan diupgrade. |
preCheckResponse[] |
Hanya output. Respons dari operasi pra-pemeriksaan. |
kind |
Opsional. Nilai ini selalu |
PreCheckResponse
| Representasi JSON |
|---|
{ "actionsRequired": [ string ], // Union field |
| Kolom | |
|---|---|
actionsRequired[] |
Tindakan yang perlu dilakukan pengguna. Gunakan berulang untuk beberapa tindakan. |
Kolom union
|
|
message |
Pesan yang akan ditampilkan kepada pengguna. |
Kolom union
|
|
messageType |
Jenis pesan, apakah berupa info, peringatan, atau error. |
AcquireSsrsLeaseContext
| Representasi JSON |
|---|
{ // Union field |
| Kolom | |
|---|---|
Kolom union
|
|
setupLogin |
Nama pengguna yang akan digunakan sebagai login penyiapan untuk terhubung ke server database untuk penyiapan SSRS. |
Kolom union
|
|
serviceLogin |
Nama pengguna yang akan digunakan sebagai login layanan untuk terhubung ke database laporan untuk penyiapan SSRS. |
Kolom union
|
|
reportDatabase |
Database laporan yang akan digunakan untuk penyiapan SSRS. |
Kolom union
|
|
duration |
Durasi sewa diperlukan untuk penyiapan SSRS. Durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan ' |
Durasi
| Representasi JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Kolom | |
|---|---|
seconds |
Detik bertanda dari rentang waktu. Harus dari -315.576.000.000 hingga +315.576.000.000 inklusif. Catatan: batas ini dihitung dari: 60 dtk/mnt * 60 mnt/j * 24 j/h * 365,25 h/thn * 10.000 thn |
nanos |
Pecahan detik bertanda pada resolusi nanodetik rentang waktu. Durasi kurang dari satu detik ditampilkan dengan kolom |
SqlSubOperationType
| Representasi JSON |
|---|
{ // Union field |
| Kolom | |
|---|---|
Kolom union sub_operation_details. Detail sub-operasi yang sesuai dengan jenis operasi. sub_operation_details hanya ada berupa salah satu diantara berikut: |
|
maintenanceType |
Jenis pemeliharaan yang akan dilakukan pada instance. |
Anotasi Alat
Petunjuk Destruktif: ❌ | Petunjuk Idempoten: ❌ | Petunjuk Hanya Baca: ❌ | Petunjuk Dunia Terbuka: ❌