DBMS/MySQL/Show Grants
Aller à la navigation
Aller à la recherche
Afficher les GRANTS MySQL
Voici un script perl permettant de lister tous les grants mysql sur un serveur donné.
#!/usr/bin/perl
use DBI;
my $Database = "mysql";
$dbh = ConnectToMySql($Database);
# retrieve a list of users and host names
$query = "SELECT user, host FROM user order by user, host";
$sth = $dbh->prepare($query);
$sth->execute();
while (@data = $sth->fetchrow_array()) {
my $user = $data[0];
my $host = $data[1];
print "CREATE user \'$user\'\@'$host\'\ identified by '';\n";
$dbh2 = ConnectToMySql($Database);
# retrieve the grants for each user and host combination
$query2 = "SHOW GRANTS FOR '$user'\@'$host'";
$sth2 = $dbh2->prepare($query2);
$sth2->execute();
while (@data2 = $sth2->fetchrow_array()) {
my $privileges = $data2[0];
print "$privileges;\n\n";
}
# end first while statement
}
#----------------------------------------------------------------------
sub ConnectToMySql {
#----------------------------------------------------------------------
my ($db) = @_;
my $host ="";
my $userid = "";
my $passwd = "";
my $connectionInfo = "dbi:mysql:$db;$host";
# make connection to database
my $l_dbh = DBI->connect($connectionInfo,$userid,$passwd);
return $l_dbh;
}