| title | Cloud SQL Auth Proxy |
|---|---|
| description | Connect to Google Cloud SQL by letting TablePro manage the Cloud SQL Auth Proxy |
import HelperPort from "/snippets/helper-port.mdx";
One field carries the whole setup: the instance connection name, project:region:instance, which is on the instance's overview page in the Google Cloud console. The proxy itself runs as a child process, started on connect and killed on disconnect.
The transport appears for Cloud SQL instances running MySQL, PostgreSQL, or SQL Server. The account you connect with needs the Cloud SQL Client role (roles/cloudsql.client) on the project, and for Application Default Credentials, one run of:
gcloud auth application-default loginInstall the binary, or click Download cloud-sql-proxy… on the Network tab, which fetches 2.23.0 and checks its SHA-256 against the value pinned for your CPU architecture.
brew install cloud-sql-proxyAuto-detection covers your PATH, /opt/homebrew/bin, /usr/local/bin, and ~/google-cloud-sdk/bin. Anywhere else, use Choose….
| Option | What it does | Default |
|---|---|---|
| Instance connection name | project:region:instance. Three colon-separated parts, none empty, or the connect is refused outright. |
- |
| Credentials | Application Default Credentials, or a Service Account Key pasted as JSON. | Application Default Credentials |
| Use IAM database authentication | Signs in as an IAM principal instead. Set Username to that principal, a user email or name@project.iam for a service account; the password goes unused. |
Off |
| Connect over private IP | Reaches the instance on its private address instead of its public one. | Off |
| Path | The cloud-sql-proxy binary. Blank auto-detects. |
Blank |
A pasted key is kept in the macOS Keychain and written to a temporary file readable only by you while the proxy runs, then deleted. It never reaches the command line.
`GOOGLE_APPLICATION_CREDENTIALS` works too, but the proxy inherits the app's environment, and a GUI app never sees variables exported by your shell profile.When the instance is already reachable, over its private IP or an authorized network, you can skip the proxy and sign in as an IAM principal directly. This works for MySQL and PostgreSQL.
On the General tab, set Authentication to one of:
- Google Cloud IAM (Application Default): the credentials from
gcloud auth application-default login. - Google Cloud IAM (Service Account): a Service Account Key, as a file path or pasted JSON.
Set Host to the instance IP and Username to the database user of the principal:
| Engine | User account | Service account |
|---|---|---|
| PostgreSQL | name@example.com |
name@project.iam |
| MySQL | name |
name |
The password field disappears. The token TablePro signs in with allows a Cloud SQL sign-in and nothing else, and lasts one hour. It is reused until five minutes before it expires, then replaced, including for a reconnect and for the extra connection MySQL opens to stop a query. SSL/TLS is raised to Required if it was lower.
The principal needs the Cloud SQL Instance User role (roles/cloudsql.instanceUser), and the instance needs IAM database authentication turned on and a database user for the principal:
gcloud sql users create name@example.com --instance=INSTANCE --type=cloud_iam_userThese options also work with Connect via > Cloud SQL Auth Proxy. SSL then stays as set, because the proxy encrypts the connection to the instance.
A connection synced to an iPhone or iPad keeps its method, and Application Default there needs a service account key for that device: see IAM sign-in.
Install it with brew install cloud-sql-proxy, download it from the Network tab, or set Path.
Run it by hand to see what it says:
cloud-sql-proxy --port 5433 --address 127.0.0.1 project:region:instanceThe proxy reports these on its own output, which the failed connect shows. Usually the account is missing the Cloud SQL Client role, Application Default Credentials were never set up, or IAM database authentication is on with no database user for the principal.
The login was made with --scopes that leave out Cloud SQL sign-in. Run gcloud auth application-default login again without --scopes.

