IBM Cloud Docs
Gestione di utenti, ruoli e privilegi

Gestione di utenti, ruoli e privilegi

MySQL 5.7 utilizza un sistema di ruoli per gestire i permessi del database. Crea utenti sia dalla IU che da MySQL Shell. Gli utenti creati dalla UI hanno privilegi quasi identici come admin, ma non possono creare altri utenti. Dal momento che admin ha entrambe le opzioni CREATE USER e GRANT, può creare un utente e dargli tutti i privilegi che ha, incluso il privilegio di creare nuovi utenti.

mysql> SELECT DISTINCT GRANTEE FROM information_schema.user_privileges;
+-----------------------------+
| GRANTEE                     |
+-----------------------------+
| 'ibm'@'localhost'           |
| 'mysql.session'@'localhost' |
| 'mysql.sys'@'localhost'     |
| 'ibm-backup'@'localhost'    |
| 'admin'@'%'                 |
| 'ibm-replication'@'%'       |
| 'ibm-monitor'@'%'           |
+-----------------------------+
+-----------------+
| user            |
+-----------------+
| admin           |
| ibm-monitor     |
| ibm-replication |
| ibm             |
| ibm-backup      |
| mysql.session   |
| mysql.sys       |
+-----------------+

Gli utenti di seguito sono mantenuti da IBM Cloud e non devono essere alterati o cancellati da voi:


| ibm-monitor     |
| ibm-replication |
| ibm             |
| ibm-backup      |

Quando esegui il provisioning di una nuova distribuzione in IBM Cloud, ti viene automaticamente fornito un utente admin per accedere e gestire MySQL.

Aggiungere utenti nell'interfaccia utente con le credenziali del servizio, con il plug-in Cloud Databases CLI o con l'API Cloud Databases.

Comandi di gestione utente

Per motivi di sicurezza, consigliamo di non eseguire query DML (Data Manipulation Language) sulla tabella mysql.user. Per proteggere dall'alterazione della tabella mysql.user, è necessario utilizzare le query DML per gestire gli utenti.

Gestisci gli utenti utilizzando comandi come CREATE USER, ALTER USER, RENAME USER e DROP USER.

Un elenco di utenti con le relative informazioni hosts, ma senza informazioni auth e hash di password, può essere estratto eseguendo il seguente comando:

mysql> SELECT DISTINCT GRANTEE FROM information_schema.user_privileges;

L'utente admin

Quando esegui il provisioning di una nuova distribuzione in IBM Cloud, ti viene automaticamente fornito un utente amministratore per accedere e gestire MySQL. Una volta impostata la password amministratore, utilizzarla per connettersi alla tua distribuzione.

Quando admin crea una risorsa in un database, come una tabella, admin possiede tale oggetto. Gli utenti creati dall'interfaccia utente hanno le autorizzazioni per *.*, il che significa che qualsiasi utente appena creato è in grado di vedere automaticamente qualsiasi database. Utilizzare MySQL sh o modificare le autorizzazioni di un utente creato dall'interfaccia utente per limitare l'accesso. Per limitare i permessi, rimuovere i privilegi globali, se abilitati, e concedere i privilegi a un database, o al set di database, a cui un determinato utente dovrebbe avere accesso.

Impostare la password amministratore prima di utilizzarla per la connessione.

Impostazione della password di amministrazione nell'interfaccia utente

Impostare la password di amministrazione attraverso l'interfaccia utente, selezionando la propria istanza dall'elenco delle risorse nella dashboard IBM Cloud. Quindi, selezionare Impostazioni. Quindi, selezionare Cambia password amministratore database.

Impostazione della password di amministrazione nella CLI

Utilizza il comando cdb user-password dal plug-in IBM Cloud CLI Cloud Databases per impostare la password dell'amministratore.

Ad esempio, per impostare la password admin per una distribuzione denominata example-deployment, utilizzare il seguente comando:

ibmcloud cdb user-password example-deployment admin <newpassword>

Impostazione della password di amministrazione nell'API

L'endpoint Foundation mostrato nella sezione Dettagli dell'installazione client del pannello Panoramica del servizio fornisce la base URL per accedere all'installazione client tramite l'API. Utilizzarlo con l'endpoint Imposta password dell'utente specificato per impostare la password dell'amministratore.

curl -X PATCH `https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/admin` \
-H `Authorization: Bearer <>` \
-H `Content-Type: application/json` \
-d `{"password":"newrootpasswordsupersecure21"}` \

Altri utenti di ibm

I account ibm e ibm-replication sono gli unici superutenti sulla tua distribuzione. Un account superuser non è disponibile da utilizzare. Questi utenti sono account amministrativi interni che gestiscono la replica, le metriche e altre funzioni che garantiscono la stabilità della propria distribuzione.

Utenti creati con mysql

Puoi ignorare completamente la creazione di utenti tramite IBM Cloud e creare utenti direttamente in MySQL con mysql. Ciò consente di utilizzare la gestione nativa dei ruoli e degli utenti MySQL's. Gli utenti / ruoli creati in mysql devono avere tutti i loro privilegi impostati manualmente, nonché i privilegi agli oggetti che creano.

Gli utenti creati direttamente in MySQL non appaiono nelle credenziali di servizio, ma è possibile aggiungerli se lo si desidera.

Si noti che questi utenti non sono integrati con i controlli IAM, anche se aggiunti a Credenziali di servizio.

Accesso utente alle tabelle

Mentre non è possibile eliminare mysql database, gli utenti possono rilasciare tabelle, inclusa la tabella mysql.users che contiene gli utenti interni. I clienti non dovrebbero cancellare alcuna tabella appartenente a mysql database poiché questa azione può comportare una formazione spezzata, che può essere risolta solo con un recupero Point - in - time (PITR).

IBM Cloud non avvisa in caso di interruzione della formazione a causa di una tabella di sistema rilasciata dal client.

Altri utenti e stringhe di connessione

L'accesso alla tua Databases for MySQL la distribuzione non è limitata all'utente admin. È possibile creare gli utenti utilizzando il pannello delle credenziali del servizio, la CLI di IBM o l'API IBM Cloud Databases.

Tutti gli utenti sulla propria distribuzione possono utilizzare le stringhe di connessione, incluse le stringhe di connessione per endpoint pubblici o privati.

Quando si crea un utente, viene assegnato determinati ruoli e privilegi di database. Questi privilegi includono la possibilità di accedere, creare database e creare altri utenti. Per ulteriori informazioni, consultare la pagina Gestione di utenti, ruoli e privilegi.

Creazione di utenti in credenziali di servizio

  1. Naviga nella dashboard di servizio per il tuo servizio.
  2. Fare clic su Credenziali di servizio per aprire il pannello Credenziali di servizio.
  3. Fai clic su New credential.
  4. Scegliere un nome descrittivo per la nuova credenziale.
  5. (opzionale) Specificare se le nuove credenziali dovrebbero utilizzare un endpoint pubblico o privato. Usare { "service-endpoints": "public" } / { "service-endpoints": "private" } nel campo Aggiungi parametri di configurazione in linea per generare stringhe di connessione usando l'endpoint specificato. L'utilizzo dell'endpoint non viene eseguito. Si controlla solo quali nomi hostomi sono nelle stringhe di connessione. Gli endpoint pubblici vengono generati per impostazione predefinita.
  6. Fare clic su Aggiungi per eseguire il provisioning delle nuove credenziali. Vengono generati automaticamente un nome utente e una password e un utente associato al database MySQL.

Le nuove credenziali appaiono nella tabella e le stringhe di connessione sono disponibili come JSON in un campo da copiare con un clic sotto Visualizza credenziali.

Creare utenti dalla riga di comando

Se gesti il tuo servizio attraverso il IBM Cloud CLI e il plug-in database cloud è possibile creare un nuovo utente con cdb user-create. Ad esempio, per creare un nuovo utente per un "example-deployment", utilizzare il seguente comando.

ibmcloud cdb user-create example-deployment <newusername> <newpassword>

Una volta che l'attività termina, è possibile richiamare le stringhe di connessione del nuovo utente con il comando ibmcloud cdb deployment-connections.

Creazione di utenti dall'API

L' endpoint Foundation mostrato nel pannello Panoramica Dettagli dell'installazione del servizio fornisce la base URL per accedere all'installazione tramite l'API. Per creare e gestire gli utenti, utilizzare la base URL con l'endpoint /users.

curl -X POST 'https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/users' \
-H "Authorization: Bearer $APIKEY" \
-H "Content-Type: application/json" \
-d '{"username":"jane_smith", "password":"newsupersecurepassword"}'

Una volta terminata l'attività, è possibile richiamare le stringhe di connessione del nuovo utente, dall'endpoint /users/{userid}/connections.

Aggiunta di utenti alle credenziali del servizio

La creazione di un nuovo utente dalla CLI non comporta il popolamento automatico delle stringhe di connessione dell'utente nelle credenziali del servizio. Se si desidera aggiungerli, è possibile creare una nuova credenziale con le informazioni dell'utente esistenti.

Immettere il nome utente e la password nel campo JSON Aggiungere i parametri di configurazione in linea o specificare un file in cui memorizzare le informazioni JSON. Ad esempio, inserendo {"existing_credentials":{"username":"Robert","password":"supersecure"}} nel campo si generano le credenziali del servizio con il nome utente "Robert" e la password "supersecure" inseriti nelle stringhe di connessione.

Generare le credenziali da un utente esistente non controlla o crea quell' utente.