Informazioni sugli utenti di MySQL

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

Per la documentazione completa sugli utenti di MySQL, consulta la documentazione di MySQL. Per informazioni sulla creazione e sulla gestione degli utenti di Cloud SQL, consulta Creazione e gestione degli utenti.

Perché hai bisogno di account utente MySQL

Gli account utente MySQL ti consentono di accedere all'istanza Cloud SQL e di amministrarla. Per consentire alle applicazioni di accedere all'istanza, sono necessari anche account utente.

Limitazioni per i super user

In Cloud SQL, i clienti non possono creare o accedere agli 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 DML (Data Manipulation Language) e DDL (Data Definition Language) sono limitati in alcune tabelle dello schema.

Ecco l'elenco delle tabelle di sistema MySQL 5.6 nello schema mysql che richiedono le autorizzazioni di scrittura: audit_log_rules_expanded, audit_log_supported_ops, audit_log_rules, cloudsql_replica_index, db, event, func, heartbeat, plugin, proc, user e 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 e tables_priv.

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

Formato dell'account utente MySQL

Gli account utente MySQL hanno due componenti: un nome utente e un nome host. Il nome utente identifica l'utente, mentre 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 IP specifico per il nome host oppure utilizzare il carattere percentuale ("%") per lasciare l'accesso senza restrizioni al nome host. Tieni presente che se ti connetti all'istanza utilizzando gli indirizzi IP, devi aggiungere l'indirizzo IP del client come indirizzo autorizzato, anche se il nome host dell'utente non ha limitazioni.

Gli account utente vengono definiti sia dal nome utente sia 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'@'%'. che utilizzerai per connetterti all'istanza del database e gestirla per la prima volta. L'utente predefinito ha tutti i privilegi di database tranne SUPER e FILE. In Cloud SQL, non puoi rinominare 'root'@'%'.

L'impostazione predefinita per root'@'% non è una password e MySQL non richiede l'utilizzo di una password per root'@'%. Tuttavia, poiché root'@'% esiste nella maggior parte delle installazioni MySQL, l'utente root'@'% è un target comune per gli accessi non autorizzati. Qualsiasi persona o programma che ottiene l'accesso all'istanza ha accesso e controllo quasi illimitati sull'istanza e sui dati. Per questo motivo, ti consigliamo di configurare l'utente root'@'% con una password efficace o di eliminarlo. Per assistenza sulla configurazione dell'account utente predefinito, consulta Configurare l'account utente predefinito.

Utenti del sistema

Esistono sette 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

    Utilizzato per le importazioni dei dati.

  • cloudsqlexport@localhost

    Utilizzato per le esportazioni di dati.

  • cloudsqloneshot

    Utilizzato per altre operazioni di database.

  • cloudsqlapplier@localhost

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

  • cloudsqlobservabilityadmin

    Utilizzato per l'osservabilità del database.

Non puoi eliminare o modificare questi utenti.

Altri account utente MySQL

Puoi anche creare altri account utente MySQL. Questa è una buona pratica perché ti consente di utilizzare account utente MySQL diversi per scopi diversi.

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

Per ulteriori informazioni sui nomi degli account utente, consulta la documentazione di MySQL. Per creare un nuovo utente MySQL, consulta Creazione di 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 sull'istanza.

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

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

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

Privilegi utente MySQL 8.0 (cloudsqlsuperuser)

In MySQL 8.0 per Cloud SQL, quando crei un nuovo utente, all'utente viene automaticamente concesso il ruolo cloudsqlsuperuser. Il ruolo cloudsqlsuperuser è un ruolo Cloud SQL che contiene una serie di privilegi MySQL. Questo ruolo assegna all'utente tutti i privilegi statici MySQL, tranne 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 alcuna operazione Data Definition Language (DDL) 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'

Passaggi successivi