Note: You are currently viewing documentation for Moodle 2.3. Up-to-date documentation for the latest stable version is available here: External database authentication.

External database authentication

From MoodleDocs

Location: Settings > Site administration > Plugins > Authentication > External database

This method uses an external database table to check whether a given username and password is valid. If the user does not currently exist in Moodle a new account will be created and their information copied from the external database.

Field mappings

This is done by mapping fields at the bottom of the database authentication page. Each data field in the user profile has a text field next to it. Enter the name of the column in the external database that maps to the profile data field.

Update Local - Specifies that the external data will be entered into the local field in question

  • On Creation - specifies that this will only happen on the original login when the account is created for the first time.
  • On Every Login - specifies that changes in the external data will be updated on the local Moodle field in question the next time the user logs in again.

Update External - Specifies just the opposite, meaning changes in the local Moodle field in question will update the corresponding field in the external database

  • Never - Specifies this is disabled
  • On Update - Enables this to happen if a change is made locally (additional configuration is probably required)

Lock Value - Only determines whether the local user can make a change in the Moodle field and does not affect the two settings above.

  • Unlocked - A user can make changes locally in the Moodle field (assumably even if it contradicts the external database the next login would change it again if Update Local is set
  • Locked - A user can never make changes
  • Unlocked if empty - A user can only make changes if the field is not populated already from the external database (this would seem to indicate a user could only enter something into this field once and could not change it after saving)

Automatic Synchronisation

The above method adds new users only when they log in. If you want user accounts to be created in Moodle independent of actual logins, the db authentication plugin offers a script you can run regularly via 'cron'. A typical cron entry will be as follows...

0 * * * *    /usr/bin/php /path/to/moodle/auth/db/cli/sync_users.php >dev/null

This runs every hour (adjust as required). It reads the entire table updating and creating local Moodle users.

Additional Notes

  • Some of the things that apply to Upload users apply to the External database
    • Set password to "changeme" to force password reset
      • If you do this, it is critical that you provide a URL to change the password!
  • Not all of the fields in the Upload users are available for the External Database authentication. The only available fields are the fields listed in the data mapping section of the admin page for the External Database connection.

See also