Informazioni sugli utenti MySQL

Questa pagina descrive come Cloud SQL funziona con gli utenti MySQL. Gli account utente MySQL garantiscono la sicurezza controllando l'accesso ai database MySQL.

Per la documentazione completa sugli utenti in MySQL, consulta Controllo dell'accesso e gestione degli account nella documentazione di MySQL. Per informazioni sulla creazione e la gestione degli utenti Cloud SQL in Cloud SQL, consulta Creare e gestire gli utenti.

Perché hai bisogno di account utente MySQL

Gli account utente MySQL consentono di accedere e amministrare l'istanza Cloud SQL. Gli account utente sono necessari anche per consentire alle applicazioni di accedere all'istanza.

Limitazioni per i superuser

In Cloud SQL, i clienti non possono creare o accedere a utenti con attributi super user.

Poiché Cloud SQL per MySQL è un servizio gestito, limita l'accesso a determinate procedure e tabelle di sistema.

I privilegi Data Manipulation Language (DML) e Data Definition Language (DDL) sono limitati su alcune tabelle dello schema.

Di seguito è riportato l'elenco delle tabelle di sistema MySQL 5.6 nello schema mysql che richiedono autorizzazioni di scrittura:

  • audit_log_rules_expanded
  • audit_log_supported_ops
  • audit_log_rules
  • cloudsql_replica_index
  • db
  • event
  • func
  • heartbeat
  • plugin
  • proc
  • user
  • tables_priv

Per MySQL 5.7, ecco l'elenco:

  • audit_log_rules_expanded
  • audit_log_supported_ops
  • audit_log_rules
  • cloudsql_replica_index
  • db
  • event
  • func
  • gtid_executed
  • heartbeat
  • plugin
  • proc
  • user
  • tables_priv

Per informazioni correlate su MySQL 8.0 e MySQL 8.4, consulta Privilegi utente di MySQL 8.0 (cloudsqlsuperuser) e Privilegi utente di MySQL 8.4 (cloudsqlsuperuser).

Formato dell'account utente MySQL

Gli account utente MySQL sono composti da due componenti: un nome utente e un nome host. Il nome utente identifica l'utente e il nome host specifica gli host da cui l'utente può connettersi. Il nome utente e il nome host vengono combinati per creare un account utente:

'<user_name>'@'<host_name>'

Puoi specificare un indirizzo IP o un intervallo di indirizzi specifico per il nome host oppure utilizzare il carattere percentuale ("%") per lasciare il nome host senza limitazioni. Tieni presente che se ti connetti alla tua istanza utilizzando gli indirizzi IP, devi aggiungere l'indirizzo IP del client come indirizzo autorizzato, anche se il nome host dell'utente non è soggetto a restrizioni.

Gli account utente sono definiti sia dal nome utente che dal nome host. Ad esempio, 'user'@'%' è un account utente diverso da 'user'@'localhost'.

Utente MySQL predefinito

Al momento della creazione, le istanze MySQL hanno un account utente predefinito:'root'@'%'. Utilizzi questo account per connetterti e gestire l'istanza del database per la prima volta. L'utente predefinito dispone di tutti i privilegi del database, ad eccezione di SUPER e FILE. In Cloud SQL, non puoi rinominare 'root'@'%'.

Il valore predefinito per root'@'% è nessuna password e MySQL non richiede l'utilizzo di una password per root'@'%. Tuttavia, poiché root'@'% esiste nella maggior parte delle installazioni di MySQL, l'utente root'@'% è un obiettivo comune per l'accesso non autorizzato. Qualsiasi persona o programma che ottiene l'accesso alla tua istanza ha un accesso e un controllo quasi illimitati sulla tua istanza e sui tuoi dati. Per questo motivo, ti consigliamo di configurare l'utente root'@'% con una password efficace o di eliminare questo utente. Per assistenza con la configurazione dell'account utente predefinito, vedi Configurare l'account utente predefinito.

Utenti del sistema

Esistono otto utenti di sistema:

  • root@localhost, root@127.0.0.1, root@::1

    Utilizzato per fornire il servizio di database gestito.

  • cloudsqlreplica@%

    Utilizzato come utente di replica per le repliche.

  • cloudsqlimport@localhost, cloudsqlimport@127.0.0.1

    Utilizzato per le importazioni di dati.

  • cloudsqlexport@localhost, cloudsqlexport@127.0.0.1

    Utilizzato per le esportazioni di dati.

  • cloudsqloneshot

    Utilizzato per altre operazioni del database.

  • cloudsqlapplier@localhost

    Utilizzato per le operazioni di replica nella replica del server esterno o nella replica tra versioni principali.

  • cloudsqlobservabilityadmin

    Utilizzato per l'osservabilità del database.

  • cloudiamgroup@'%'

    Utilizzato per l'autenticazione del gruppo IAM.

Non puoi eliminare o modificare questi utenti.

Altri account utente MySQL

Puoi anche creare altri account utente MySQL. Si tratta di una buona pratica perché consente di utilizzare account utente MySQL diversi per scopi diversi.

Puoi creare un account utente con un nome host con limitazioni o utilizzare i comandi SQL per limitare i privilegi degli account utente.

Per ulteriori informazioni sui nomi degli account utente, consulta la sezione Specificare i nomi degli account nella documentazione di MySQL. Per creare un nuovo utente MySQL in Cloud SQL, consulta Crea un utente.

Privilegi utente MySQL 5.6 e 5.7

MySQL fornisce privilegi granulari che puoi concedere o rimuovere per un utente. In questo modo puoi controllare le azioni che un utente può eseguire nella tua istanza.

Gli utenti creati mediante Cloud SQL hanno gli stessi privilegi dell'utente MySQL predefinito. Puoi modificare i loro privilegi utilizzando le istruzioni GRANT o REVOKE.

Quando utilizzi il client mysql per creare un utente, devi concedere esplicitamente i privilegi all'utente con l'istruzione GRANT.

Per ulteriori informazioni sui privilegi supportati da MySQL, consulta Privilegi forniti da MySQL.

Privilegi utente MySQL 8.0 (cloudsqlsuperuser)

In Cloud SQL per MySQL 8.0, quando crei un nuovo utente, a quest'ultimo viene concesso automaticamente il ruolo cloudsqlsuperuser. Il ruolo cloudsqlsuperuser è un ruolo Cloud SQL che contiene una serie di privilegi MySQL. Questo ruolo concede all'utente tutti i privilegi statici di MySQL, ad eccezione di SUPER e FILE.

Il ruolo cloudsqlsuperuser supporta solo i seguenti privilegi dinamici in base alle versioni secondarie di MySQL 8.0:

MySQL 8.0.18

MySQL 8.0.26

MySQL 8.0.27

MySQL 8.0.28

MySQL 8.0.29 (deprecato)

MySQL 8.0.30 e versioni successive

Il ruolo cloudsqlsuperuser non supporta operazioni DDL (Data Definition Language) sul database di sistema mysql.

Per visualizzare un elenco completo dei privilegi concessi al ruolo cloudsqlsuperuser, esegui l'istruzione SHOW GRANTS nel client mysql:

SHOW GRANTS FOR 'cloudsqlsuperuser'

Privilegi utente MySQL 8.4 (cloudsqlsuperuser)

Analogamente a Cloud SQL per MySQL 8.0, in Cloud SQL per MySQL 8.4, quando crei un nuovo utente, a quest'ultimo viene concesso automaticamente il ruolo cloudsqlsuperuser.

In MySQL 8.4, il ruolocloudsqlsuperuser ha gli stessi privilegi di MySQL 8.0.x. Tuttavia, MySQL 8.4 presenta le seguenti differenze principali rispetto a MySQL 8.0.x:

Inoltre, Cloud SQL per MySQL 8.4 non concede i privilegi TRANSACTION_GTID_TAG o TELEMETRY_LOG_ADMIN introdotti in MySQL 8.4.

Passaggi successivi