MySQL: creazione di un utente in grado di connettersi da più host


30

Sto usando MySQL e ho bisogno di creare un account in grado di connettersi dal localhost o da un altro server, ovvero 10.1.1.1. Quindi sto facendo:

CREATE USER 'bob'@'localhost' IDENTIFIED BY 'password123';
CREATE USER 'bob'@'10.1.1.1' IDENTIFIED BY 'password123';
GRANT SELECT, INSERT, UPDATE, DELETE on MyDatabse.* to 'bob'@'localhost', 'bob'@'10.1.1.1';

Funziona bene, ma esiste un modo più elegante per creare un account utente collegato a più IP o deve essere fatto in questo modo?

La mia preoccupazione principale è che in futuro le autorizzazioni verranno aggiornate per un account "bob" ma non per l'altro.

Risposte:


20

Se si desidera limitare l'hosting e non si desidera specificare in base a una subnet o un jolly %, è l'unico modo per farlo. Maggiori dettagli sono disponibili nella documentazione di MySQL .

Sto ancora cercando di trovare il modo di eliminare le spese generali durante la gestione dell'autenticazione su grandi installazioni MySQL e non ho ancora trovato una soluzione perfetta.


8

Cominciamo creando un nuovo utente chiamato "chaminda" all'interno della shell MySQL:

CREATE USER 'chaminda'@'%' IDENTIFIED BY 'password';

La prima cosa da fare è fornire all'utente le autorizzazioni necessarie e qui ho dato tutte le autorizzazioni a quel particolare utente.

GRANT ALL PRIVILEGES ON * . * TO 'chaminda'@'%';

Ricarica tutti i privilegi.

FLUSH PRIVILEGES;

Se si desidera consentire l'intervallo di IP per un determinato utente, utilizzare come segue 10.1.1.%

GRANT ALL PRIVILEGES ON * . * TO 'chaminda'@'10.1.1.%';

Nota: qui Nome host =% e ciò significa che è possibile accedere a questo server di database da qualsiasi host. Concedere tutti i privilegi all'utente è un grosso rischio e non è una buona pratica. Inoltre è possibile sostituire l'utente 'chaminda' in 'bob'.


5
Questo non risponde alla domanda. Concede l'accesso a un utente da tutti gli IP, ma l'OP chiede un modo più elegante per consentire a un singolo utente di accedere al database da un elenco di IP. Fondamentalmente, invece di più istruzioni per aggiungere un utente più volte da più IP, l'idea è quella di aggiungere un singolo utente che può accedere al database da più IP, il che rende la gestione più semplice e meno soggetta a errori.
Anthony,

Puoi anche usare _ come jolly come 10.1.1.1__ per abbinare 100 -199 ma per 200 devi creare un account separato o usare il jolly% e includere anche 0-99 e 201-255
Chaminda Bandara

-3

MySQL consente più caratteri jolly in una riga. Una possibile soluzione è quella di Host impostato per l'utente Bobsia

locahost/10.1.1.1

Riferimento:

http://dev.mysql.com/doc/refman/5.1/en/connection-access.html


Non è quello che dice la documentazione. Come elencato nella tabella, /255.255.255.0 è una maschera di rete. Se esiste un modo per elencare più caratteri jolly nella definizione host, non è questo il modo di farlo.
Majikman,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.