NAME
    MySQL::GrantParser - parse SHOW GRANTS and return as hash reference
INSTALLATION
    To install this module, run the following commands:
        perl Build.PL
        ./Build
        ./Build test
        ./Build install
SYNOPSIS
        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
DESCRIPTION
    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 => '',
                },
            },
        }
METHODS
 Class Methods
  new(%args:Hash) :MySQL::GrantParser
    Creates and returns a new MySQL::GrantParser instance. Dies on errors.
    %args is following:
    dbh => DBI:db
      Database handle object.
    user => Str
    password => Str
    hostname => Str
    socket => Str
      Path of UNIX domain socket for connecting.
    Mandatory arguments are dbh or hostname or socket.
 Instance Methods
  parse() :HashRef
    Parse privileges and return as hash reference.
AUTHOR
    HIROSE Masaaki 
REPOSITORY
    https://github.com/hirose31/MySQL-GrantParser
        git clone https://github.com/hirose31/MySQL-GrantParser.git
    patches and collaborators are welcome.
SEE ALSO
    Gratan ,
    http://dev.mysql.com/doc/refman/5.6/en/grant.html
COPYRIGHT
    Copyright HIROSE Masaaki
LICENSE
    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.