Login
Cerca all'interno di JavaPortal
Help
Home Page Documentazione Forum Progetti Partner Pubblica!
Documentazione > Tutorial > MYSQL - Controllo degli accessi
Hide
Best Practices
EJB
Frameworks
Howto
J2EE
J2ME and Wireless
J2SE
JSP e Servlet
Java Application Server
Java IDE/Tools
Java Media
Java Security
Java Sys Admin
Java e XML
Java e SQL
OpenSource Java
Patterns
Repository
Tesi
UML
Web Services
Slide
White Paper di jws.it
project management
Eventi
Groovy

Hai una tesi in Java?
Tesine preparate
per esami?
Pubblica tutto su
JavaPortal!

Scrivi al nostro staff


Il 10 libri più venduti alla JavaOne


Blaise Pascal
È molto più bello sapere qualcosa di tutto, che tutto di una cosa


ILOG JViews: Sviluppare interfacce avanzate per applicazione ricche e per il Web


Rss Feed
Home Page
Articoli
News
Forum
Classi

  Visualizza Commenti (0) Aggiungi Commento    
Add to Shortcuts
 
Vota l'articolo
MYSQL - Controllo degli accessi
By Carlo di Gianvito
17 aprile 2005

  MYSQL - Controllo degli accessi

Il controllo degli accessi

Il db mysql ha una struttura come quella mostrata in figura, contenente le sueguenti tabelle: columns_priv, db,func,host,tables_priv e user.

Fig. 1 Il controllo degli accessi 

Quando ci connettiamo al server MySQL, ad esempio tramite una classe java, viene controllato se nella tabella user esiste un record contenente tre cose:

  • l'host da cui parte la connessione
  • il nome dell'utente (user)
  • se l'utente utilizza una password di protezione

in mancanza di questi requisiti MySQL si rifiuta di aprire la connessione:

Error No. 1045
Access denied for user: 'root@127.0.0.1'(Using password:YES)
 
se invece trova i requisiti:
  • controlla se nel record è presente un flag di autorizzazione
  • se non c'è, MySQL passa alla tabella db e controlla se c'è un record contenente user, host e database
  • se c'è controlla se nella tabella host è presente un record contenente host e database

in definitiva si può dire che le autorizzazioni più importanti sono nelle tabelle user e db ma è possibile limitare l'accesso anche in base all' host e tramite le tabelle columns_priv e tables_priv anche a livello di tabella e colonna.

E' importante notare che i privilegi concessi nella tabella user sono privilegi da amministratore (root) e valgono per tutti i database

le autorizzazioni sono impostate nella tabella user in base ai valori dei campi, select_priv, Insert_priv, Update_priv e così via, che a volte avranno valore Y a volte N. Il campo Host potrà essere impostato con il carattere % (carattere Jolly) ad indicare qualsiasi Host. Vediamo alcuni esempi di aggiunta e modifica di autorizzazioni su un database chiamato test

Creazione del database
create database test;

Inserire un nuovo utente
INSERT INTO user(host,user,password)
VALUES(127.0.0.1,'eleanor_rigby',password('pennylane'));

n cui 127.0.0.1 è l'IP predefinito per il localhost, seguito da user e psw.

Inserimento di un record nella tabella db
INSERT INTO db (host,db,;user,Select_priv,insert_priv,update_priv,delete_ priv,create_priv,drop_priv)
-> VALUES ('127.0.0.1','test','eleanor_rigby','Y','Y','Y','Y','Y','Y');

per fare in modo che i nuovi privilegi diventino operativi è necessario il comando:

FLUSH PRIVILEGES

Mofidifica dell'utente
UPDATE db SET user='get_back'
WHERE user='eleanor_rigby';

Eliminazione dell'utente
DELETE FROM user WHERE user='get_back';
DELETE FROM db WHERE user='get_back';

Autorizzazioni GRANT
GRANT SELECT INSERT UPDATE DELETE ON test.* TO eleanor_rigby;
autorizza l'utente eleanor-rigby alla selezione, all'inserimento, all'aggiornamento e alla cancellazione, su tutte le tabelle del db test

GRANT SELECT INSERT UPDATE DELETE ON test.* TO eleanor_rigby@localhost;
idem come sopra ma si specifica la macchina dalla quale ci si può connettere, in caso contrario se non si specifica l'host si autorizza l'utente a connettersi da qualsiasi macchina

GRANT SELECT INSERT UPDATE DELETE ON test.* TO eleanor_rigby@localhost
IDENTIFIED BY pennylane;
autorizzazione con password

Revoca di autoririzzazioni con REVOKE
REVOKE SELECT INSERT UPDATE DELETE ON test.* FROM eleanor_rigby@localhost;

Username:
Password:
To sign up for an account, click register... Register
Hide





Powered By



Campagna Anti-IF


Skin


PARTNER
Zio Budda
HostingJava


LICENZA



Eccetto dove diversamente specificato, i contenuti di questo sito sono rilasciati sotto licenza Creative Commons

Sitemap  © 2002-2004 Copyright Information. Privacy . Today is domenica 1 agosto 2010