diff --git a/library/Icinga/Authentication/Backend/DbUserBackend.php b/library/Icinga/Authentication/Backend/DbUserBackend.php
index a89a07c81..239ceb258 100644
--- a/library/Icinga/Authentication/Backend/DbUserBackend.php
+++ b/library/Icinga/Authentication/Backend/DbUserBackend.php
@@ -126,4 +126,21 @@ class DbUserBackend extends UserBackend
 
         return ($row !== false) ? $row->count : 0;
     }
+
+    /**
+     * Return the names of all available users
+     *
+     * @return  array
+     */
+    public function listUsers()
+    {
+        $query = $this->conn->select()->from('account', array('username'));
+
+        $users = array();
+        foreach ($query->fetchAll() as $row) {
+            $users[] = $row->username;
+        }
+
+        return $users;
+    }
 }
diff --git a/library/Icinga/Authentication/Backend/LdapUserBackend.php b/library/Icinga/Authentication/Backend/LdapUserBackend.php
index 23a79781d..8e5307fc8 100644
--- a/library/Icinga/Authentication/Backend/LdapUserBackend.php
+++ b/library/Icinga/Authentication/Backend/LdapUserBackend.php
@@ -159,5 +159,22 @@ class LdapUserBackend extends UserBackend
             )
         );
     }
+
+    /**
+     * Return the names of all available users
+     *
+     * @return  array
+     */
+    public function listUsers()
+    {
+        $query = $this->conn->select()->from($this->userClass, array($this->userNameAttribute));
+
+        $users = array();
+        foreach ($query->fetchAll() as $row) {
+            $users[] = $row->{$this->userNameAttribute};
+        }
+
+        return $users;
+    }
 }