MySQL::GrantParser - parse SHOW GRANTS and return as hash reference
use MySQL::GrantParser; # connect with existing dbh my $dbh = DBI->connect(...); my $grant_parser = MySQL::GrantParser->new( dbh => $dbh; ); # connect with user, password my $grant_parser = MySQL::GrantParser->new( user => 'root', password => 'toor', hostname => '127.0.0.1', ); # and parse! my $grants = $grant_parser->parse; # => HashRef
MySQL::GrantParser is SHOW GRANTS parser for MySQL, inspired by Ruby's Gratan.
This module returns privileges for all users as following hash reference.
{ 'USER@HOST' => { 'user' => USER, 'host' => HOST, 'objects' => { 'DB_NAME.TABLE_NAME' => { privs => [ PRIV_TYPE, PRIV_TYPE, ... ], with => 'GRANT OPTION', }, ... }, 'options' => { 'identified' => '...', 'required' => '...', }, }, { ... }, }
For example, this GRANT statement
GRANT SELECT, INSERT, UPDATE, DELETE ON orcl.* TO 'scott'@'%' IDENTIFIED BY 'tiger' WITH GRANT OPTION;
is represented as following.
{ 'scott@%' => { user => 'scott', host => '%', objects => { '*.*' => { privs => [ 'USAGE' ], with => '', }, '`orcl`.*' => { privs => [ 'SELECT', 'INSERT', 'UPDATE', 'DELETE', ], with => 'GRANT OPTION', } }, options => { identified => "PASSWORD XXX", required => '', }, }, }
Creates and returns a new MySQL::GrantParser instance. Dies on errors.
%args is following:
Database handle object.
Path of UNIX domain socket for connecting.
Mandatory arguments are dbh or hostname or socket.
dbh
hostname
socket
Parse privileges and return as hash reference.
HIROSE Masaaki <hirose31@gmail.com>
https://github.com/hirose31/MySQL-GrantParser
git clone https://github.com/hirose31/MySQL-GrantParser.git
patches and collaborators are welcome.
Gratan, http://dev.mysql.com/doc/refman/5.6/en/grant.html
Copyright HIROSE Masaaki
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install MySQL::GrantParser, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MySQL::GrantParser
CPAN shell
perl -MCPAN -e shell install MySQL::GrantParser
For more information on module installation, please visit the detailed CPAN module installation guide.