return 'MySQL';
}
+
+my @table_privileges = (qw/
+ ALTER
+ CREATE
+ DELETE
+ FILE
+ INDEX
+ INSERT
+ SELECT
+ UPDATE
+ USAGE/,
+ 'CREATE TEMPORARY TABLE',
+ 'LOCK TABLES',
+ 'CREATE VIEW');
+
+my @dba_privileges = (
+ 'CREATE USER',
+ 'DROP',
+ 'EVENT',
+ 'PROCESS',
+ 'RELOAD',
+ 'REPLICATION CLIENT',
+ 'REPLICATION SLAVE',
+ 'SHUTDOWN',
+ 'SUPER',
+ 'GRANT OPTION',
+ 'ALL',
+ 'ALL PRIVILEGES');
+
+my @stored_func_privileges = (
+ 'ALTER ROUTINE',
+ 'CREATE ROUTINE',
+ 'EXECUTE',
+ 'TRIGGER');
+
+sub known_privileges {
+ return { map { $_ => 1 } @table_privileges, @dba_privileges, @stored_func_privileges };
+}
+
+sub set_user_password {
+ my ($self, $user, $password) = @_;
+
+ return "SET PASSWORD FOR $user = PASSWORD('$password')";
+}
+
+sub current_schema {
+ my ($self) = @_;
+ return $self->dbh->selectrow_arrayref("SELECT DATABASE()")->[0];
+}
+
+sub post_grant {
+ my ($self) = @_;
+ $self->dbh->do('FLUSH PRIVILEGES');
+}
+
1;
=head1 NAME