diff --git a/catalogue/SqliteCatalogue.cpp b/catalogue/SqliteCatalogue.cpp
index 2884a11023848a1c5a76c7d73674da1c5341d06f..d6a26751c28daa85b37180f10e8b3a0219f490e3 100644
--- a/catalogue/SqliteCatalogue.cpp
+++ b/catalogue/SqliteCatalogue.cpp
@@ -198,6 +198,7 @@ void cta::catalogue::SqliteCatalogue::createDbSchema() {
       "FOREIGN KEY(TAPE_POOL_NAME) REFERENCES "
         "TAPE_POOL(TAPE_POOL_NAME)"
     ");"
+
     "CREATE TABLE MOUNT_GROUP("
       "MOUNT_GROUP_NAME VARCHAR2(100) NOT NULL,"
 
@@ -223,9 +224,9 @@ void cta::catalogue::SqliteCatalogue::createDbSchema() {
 
       "PRIMARY KEY(MOUNT_GROUP_NAME)"
     ");"
+
     "CREATE TABLE REQUESTER("
-      "USER_NAME VARCHAR2(100) NOT NULL,"
-      "GROUP_NAME VARCHAR2(100) NOT NULL,"
+      "REQUESTER_NAME VARCHAR2(100) NOT NULL,"
 
       "MOUNT_GROUP_NAME VARCHAR2(100) NOT NULL,"
 
@@ -241,10 +242,33 @@ void cta::catalogue::SqliteCatalogue::createDbSchema() {
       "LAST_MOD_HOST_NAME  VARCHAR2(100) NOT NULL,"
       "LAST_MOD_TIME       INTEGER       NOT NULL,"
 
-      "PRIMARY KEY(USER_NAME, GROUP_NAME),"
+      "PRIMARY KEY(REQUESTER_NAME),"
       "FOREIGN KEY(MOUNT_GROUP_NAME) REFERENCES "
         "MOUNT_GROUP(MOUNT_GROUP_NAME)"
     ");"
+
+     "CREATE TABLE REQUESTER_GROUP("
+      "REQUESTER_GROUP_NAME VARCHAR2(100) NOT NULL,"
+
+      "MOUNT_GROUP_NAME VARCHAR2(100) NOT NULL,"
+
+      "USER_COMMENT VARCHAR2(1000) NOT NULL,"
+
+      "CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,"
+      "CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,"
+      "CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,"
+      "CREATION_LOG_TIME       INTEGER       NOT NULL,"
+
+      "LAST_MOD_USER_NAME  VARCHAR2(100) NOT NULL,"
+      "LAST_MOD_GROUP_NAME VARCHAR2(100) NOT NULL,"
+      "LAST_MOD_HOST_NAME  VARCHAR2(100) NOT NULL,"
+      "LAST_MOD_TIME       INTEGER       NOT NULL,"
+
+      "PRIMARY KEY(REQUESTER_GROUP_NAME),"
+      "FOREIGN KEY(MOUNT_GROUP_NAME) REFERENCES "
+        "MOUNT_GROUP(MOUNT_GROUP_NAME)"
+    ");"
+
     "CREATE TABLE ARCHIVE_FILE("
       "ARCHIVE_FILE_ID    INTEGER       NOT NULL,"
       "DISK_INSTANCE      VARCHAR2(100) NOT NULL,"
@@ -266,6 +290,7 @@ void cta::catalogue::SqliteCatalogue::createDbSchema() {
         "REFERENCES STORAGE_CLASS(STORAGE_CLASS_NAME),"
       "UNIQUE(DISK_INSTANCE, DISK_FILE_ID)"
     ");"
+
     "CREATE TABLE TAPE_FILE("
       "VID             VARCHAR2(100) NOT NULL,"
       "FSEQ            INTEGER       NOT NULL,"
@@ -1406,8 +1431,7 @@ void cta::catalogue::SqliteCatalogue::createRequester(
   const uint64_t now = time(NULL);
   const char *const sql =
     "INSERT INTO REQUESTER("
-      "USER_NAME,"
-      "GROUP_NAME,"
+      "REQUESTER_NAME,"
       "MOUNT_GROUP_NAME,"
 
       "USER_COMMENT,"
@@ -1422,8 +1446,7 @@ void cta::catalogue::SqliteCatalogue::createRequester(
       "LAST_MOD_HOST_NAME,"
       "LAST_MOD_TIME)"
     "VALUES("
-      ":USER_NAME,"
-      ":GROUP_NAME,"
+      ":REQUESTER_NAME,"
       ":MOUNT_GROUP_NAME,"
 
       ":USER_COMMENT,"
@@ -1439,8 +1462,7 @@ void cta::catalogue::SqliteCatalogue::createRequester(
       ":CREATION_LOG_TIME);";
   std::unique_ptr<SqliteStmt> stmt(m_conn.createStmt(sql));
 
-  stmt->bind(":USER_NAME", user.name);
-  stmt->bind(":GROUP_NAME", user.group);
+  stmt->bind(":REQUESTER_NAME", user.name);
   stmt->bind(":MOUNT_GROUP_NAME", mountGroup);
 
   stmt->bind(":USER_COMMENT", comment);
@@ -1466,8 +1488,7 @@ std::list<cta::common::dataStructures::Requester>
   std::list<common::dataStructures::Requester> users;
   const char *const sql =
     "SELECT "
-      "USER_NAME        AS USER_NAME,"
-      "GROUP_NAME       AS GROUP_NAME,"
+      "REQUESTER_NAME   AS REQUESTER_NAME,"
       "MOUNT_GROUP_NAME AS MOUNT_GROUP_NAME,"
 
       "USER_COMMENT AS USER_COMMENT,"
@@ -1490,8 +1511,8 @@ std::list<cta::common::dataStructures::Requester>
     }
     common::dataStructures::Requester user;
     
-    user.name = stmt->columnText(nameToIdx["USER_NAME"]);
-    user.group = stmt->columnText(nameToIdx["GROUP_NAME"]);
+    user.name = stmt->columnText(nameToIdx["REQUESTER_NAME"]);
+    user.group = "N/A";
     user.mountGroupName = stmt->columnText(nameToIdx["MOUNT_GROUP_NAME"]);
 
     user.comment = stmt->columnText(nameToIdx["USER_COMMENT"]);
@@ -2123,11 +2144,9 @@ cta::common::dataStructures::MountPolicy cta::catalogue::SqliteCatalogue::
     "FROM MOUNT_GROUP INNER JOIN REQUESTER ON "
       "MOUNT_GROUP.MOUNT_GROUP_NAME = REQUESTER.MOUNT_GROUP_NAME "
     "WHERE "
-      "USER_NAME = :USER_NAME AND "
-      "GROUP_NAME = :GROUP_NAME;";
+      "REQUESTER.REQUESTER_NAME = :REQUESTER_NAME;";
   std::unique_ptr<SqliteStmt> stmt(m_conn.createStmt(sql));
-  stmt->bind(":USER_NAME", user.name);
-  stmt->bind(":GROUP_NAME", user.group);
+  stmt->bind(":REQUESTER_NAME", user.name);
   ColumnNameToIdx nameToIdx;
   if(SQLITE_ROW == stmt->step()) {
     nameToIdx = stmt->getColumnNameToIdx();
@@ -2158,11 +2177,9 @@ cta::common::dataStructures::MountPolicy cta::catalogue::SqliteCatalogue::
     "FROM MOUNT_GROUP INNER JOIN REQUESTER ON "
       "MOUNT_GROUP.MOUNT_GROUP_NAME = REQUESTER.MOUNT_GROUP_NAME "
     "WHERE "
-      "USER_NAME = :USER_NAME AND "
-      "GROUP_NAME = :GROUP_NAME;";
+      "REQUESTER.REQUESTER_NAME = :REQUESTER_NAME;";
   std::unique_ptr<SqliteStmt> stmt(m_conn.createStmt(sql));
-  stmt->bind(":USER_NAME", user.name);
-  stmt->bind(":GROUP_NAME", user.group);
+  stmt->bind(":REQUESTER_NAME", user.name);
   ColumnNameToIdx nameToIdx;
   if(SQLITE_ROW == stmt->step()) {
     nameToIdx = stmt->getColumnNameToIdx();
diff --git a/catalogue/catalogue_schema.sql b/catalogue/catalogue_schema.sql
index 0f1395945bbbf8d282e40f298fb7361c3c10bba8..dd6073098c4977e2c7292e59f86530e3082f29c0 100644
--- a/catalogue/catalogue_schema.sql
+++ b/catalogue/catalogue_schema.sql
@@ -4,7 +4,7 @@ DROP TABLE ARCHIVE_ROUTE;
 DROP TABLE TAPE_FILE;
 DROP TABLE ARCHIVE_FILE;
 DROP TABLE TAPE;
-DROP TABLE END_USER;
+DROP TABLE REQUESTER;
 DROP TABLE ADMIN_USER;
 DROP TABLE ADMIN_HOST;
 DROP TABLE STORAGE_CLASS;
@@ -197,9 +197,8 @@ CREATE TABLE MOUNT_GROUP(
   CONSTRAINT MOUNT_GROUP_PK PRIMARY KEY(MOUNT_GROUP_NAME)
 );
 
-CREATE TABLE END_USER(
-  USER_NAME  VARCHAR2(100) NOT NULL,
-  GROUP_NAME VARCHAR2(100) NOT NULL,
+CREATE TABLE REQUESTER(
+  REQUESTER_NAME VARCHAR2(100) NOT NULL,
 
   MOUNT_GROUP_NAME VARCHAR2(100) NOT NULL,
 
@@ -215,9 +214,32 @@ CREATE TABLE END_USER(
   LAST_MOD_HOST_NAME  VARCHAR2(100) NOT NULL,
   LAST_MOD_TIME       INTEGER       NOT NULL,
 
-  CONSTRAINT END_USER_PK PRIMARY KEY(USER_NAME),
+  CONSTRAINT REQUESTER_PK PRIMARY KEY(REQUESTER_NAME),
 
-  CONSTRAINT END_USER_MOUNT_GROUP_FK FOREIGN KEY(MOUNT_GROUP_NAME)
+  CONSTRAINT REQUESTER_MOUNT_GROUP_FK FOREIGN KEY(MOUNT_GROUP_NAME)
+    REFERENCES MOUNT_GROUP(MOUNT_GROUP_NAME)
+);
+
+CREATE TABLE REQUESTER_GROUP(
+  REQUESTER_GROUP_NAME VARCHAR2(100) NOT NULL,
+
+  MOUNT_GROUP_NAME VARCHAR2(100) NOT NULL,
+
+  USER_COMMENT VARCHAR2(1000) NOT NULL,
+
+  CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,
+  CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,
+  CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,
+  CREATION_LOG_TIME       INTEGER       NOT NULL,
+
+  LAST_MOD_USER_NAME  VARCHAR2(100) NOT NULL,
+  LAST_MOD_GROUP_NAME VARCHAR2(100) NOT NULL,
+  LAST_MOD_HOST_NAME  VARCHAR2(100) NOT NULL,
+  LAST_MOD_TIME       INTEGER       NOT NULL,
+
+  CONSTRAINT REQUESTER_GROUP_PK PRIMARY KEY(REQUESTER_NAME),
+
+  CONSTRAINT REQUESTER_GROUP_MOUNT_GROUP_FK FOREIGN KEY(MOUNT_GROUP_NAME)
     REFERENCES MOUNT_GROUP(MOUNT_GROUP_NAME)
 );