Authen::Simple::DBI(3) Simple DBI authentication


use Authen::Simple::DBI;

my $dbi = Authen::Simple::DBI->new(
dsn => 'dbi:SQLite:dbname=database.db',
statement => 'SELECT password FROM users WHERE username = ?'

if ( $dbi->authenticate( $username, $password ) ) {
# successfull authentication

# or as a mod_perl Authen handler
PerlModule Apache::DBI
PerlModule Authen::Simple::Apache
PerlModule Authen::Simple::DBI
PerlSetVar AuthenSimpleDBI_dsn "dbi:SQLite:dbname=database.db"
PerlSetVar AuthenSimpleDBI_statement "SELECT password FROM users WHERE username = ?"
<Location /protected>
PerlAuthenHandler Authen::Simple::DBI
AuthType Basic
AuthName "Protected Area"
Require valid-user


DBI authentication.


  • new

    This method takes a hash of parameters. The following options are valid:

  • dsn

    Database Source Name. Required.

        dsn => 'dbi:SQLite:dbname=database.db'
        dsn => 'dbi:mysql:database=database;host=localhost;'
  • statement

    SQL statement. The statement must take a single string argument (username) and return a single value (password). Required.

        statement => 'SELECT password FROM users WHERE username = ?'
  • username

    Database username.

        username => 'username'
  • password

    Database password.

        password => 'secret'
  • log

    Any object that supports "debug", "info", "error" and "warn".

        log => Log::Log4perl->get_logger('Authen::Simple::DBI')
  • authenticate( $username, $password )

    Returns true on success and false on failure.


Christian Hansen "[email protected]"


This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.