diff --git a/web/pgadmin/browser/server_groups/servers/__init__.py b/web/pgadmin/browser/server_groups/servers/__init__.py
index bc0bd4611..00025196b 100644
--- a/web/pgadmin/browser/server_groups/servers/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/__init__.py
@@ -346,7 +346,7 @@ class ServerModule(sg.ServerGroupPluginModule):
                 host=data.host,
                 hostaddr=data.hostaddr,
                 port=data.port,
-                maintenance_db=None,
+                maintenance_db=data.maintenance_db,
                 username=None,
                 save_password=0,
                 ssl_mode=data.ssl_mode,
diff --git a/web/pgadmin/browser/server_groups/servers/utils.py b/web/pgadmin/browser/server_groups/servers/utils.py
index e074ea735..34892804c 100644
--- a/web/pgadmin/browser/server_groups/servers/utils.py
+++ b/web/pgadmin/browser/server_groups/servers/utils.py
@@ -12,7 +12,7 @@ from ipaddress import ip_address
 
 from pgadmin.utils.crypto import encrypt, decrypt
 import config
-from pgadmin.model import db, Server
+from pgadmin.model import db, Server, SharedServer
 
 
 def is_valid_ipaddress(address):
@@ -283,8 +283,15 @@ def does_server_exists(sid, user_id):
     # **kwargs parameter can be added to function to filter with more
     # parameters.
     try:
-        return True if Server.query.filter_by(
-            id=sid, user_id=user_id
-        ).first() is not None else False
+        if Server.query.filter_by(id=sid, user_id=user_id).first():
+            server = Server.query.filter_by(
+                id=sid, user_id=user_id
+            ).first()
+        else:
+            server = SharedServer.query.filter_by(
+                id=sid, user_id=user_id
+            ).first()
+
+        return True if server is not None else False
     except Exception:
         return False
diff --git a/web/pgadmin/tools/backup/__init__.py b/web/pgadmin/tools/backup/__init__.py
index 0d67804dd..aacb2e5d4 100644
--- a/web/pgadmin/tools/backup/__init__.py
+++ b/web/pgadmin/tools/backup/__init__.py
@@ -24,7 +24,7 @@ from pgadmin.utils import PgAdminModule, get_storage_directory, html, \
 from pgadmin.utils.ajax import make_json_response, bad_request
 
 from config import PG_DEFAULT_DRIVER
-from pgadmin.model import Server
+from pgadmin.model import Server, SharedServer
 from pgadmin.misc.bgprocess import escape_dquotes_process_arg
 from pgadmin.utils.constants import MIMETYPE_APP_JS
 
@@ -115,10 +115,15 @@ class BackupMessage(IProcessDesc):
                 self.cmd += cmd_arg(arg)
 
     def get_server_details(self):
-        # Fetch the server details like hostname, port, roles etc
-        s = Server.query.filter_by(
-            id=self.sid, user_id=current_user.id
-        ).first()
+        if Server.query.filter_by(id=self.sid,
+                                  user_id=current_user.id).first():
+            s = Server.query.filter_by(
+                id=self.sid, user_id=current_user.id
+            ).first()
+        else:
+            s = SharedServer.query.filter_by(
+                id=self.sid, user_id=current_user.id
+            ).first()
 
         from pgadmin.utils.driver import get_driver
         driver = get_driver(PG_DEFAULT_DRIVER)
@@ -417,9 +422,14 @@ def create_backup_objects_job(sid):
         return bad_request(errormsg=str(e))
 
     # Fetch the server details like hostname, port, roles etc
-    server = Server.query.filter_by(
-        id=sid, user_id=current_user.id
-    ).first()
+    if Server.query.filter_by(id=sid, user_id=current_user.id).first():
+        server = Server.query.filter_by(
+            id=sid, user_id=current_user.id
+        ).first()
+    else:
+        server = SharedServer.query.filter_by(
+            id=sid, user_id=current_user.id
+        ).first()
 
     if server is None:
         return make_json_response(
@@ -521,9 +531,14 @@ def check_utility_exists(sid, backup_obj_type):
     Returns:
         None
     """
-    server = Server.query.filter_by(
-        id=sid, user_id=current_user.id
-    ).first()
+    if Server.query.filter_by(id=sid, user_id=current_user.id).first():
+        server = Server.query.filter_by(
+            id=sid, user_id=current_user.id
+        ).first()
+    else:
+        server = SharedServer.query.filter_by(
+            id=sid, user_id=current_user.id
+        ).first()
 
     if server is None:
         return make_json_response(
diff --git a/web/pgadmin/tools/maintenance/__init__.py b/web/pgadmin/tools/maintenance/__init__.py
index cc84399b2..160573a1c 100644
--- a/web/pgadmin/tools/maintenance/__init__.py
+++ b/web/pgadmin/tools/maintenance/__init__.py
@@ -20,7 +20,7 @@ from pgadmin.utils.ajax import bad_request, make_json_response
 from pgadmin.utils.driver import get_driver
 
 from config import PG_DEFAULT_DRIVER
-from pgadmin.model import Server
+from pgadmin.model import Server, SharedServer
 from pgadmin.utils.constants import MIMETYPE_APP_JS
 
 MODULE_NAME = 'maintenance'
@@ -209,8 +209,14 @@ def create_maintenance_job(sid, did):
     index_name = get_index_name(data)
 
     # Fetch the server details like hostname, port, roles etc
-    server = Server.query.filter_by(
-        id=sid).first()
+    if Server.query.filter_by(id=sid, user_id=current_user.id).first():
+        server = Server.query.filter_by(
+            id=sid, user_id=current_user.id
+        ).first()
+    else:
+        server = SharedServer.query.filter_by(
+            id=sid, user_id=current_user.id
+        ).first()
 
     if server is None:
         return make_json_response(
@@ -300,9 +306,18 @@ def check_utility_exists(sid):
     Returns:
         None
     """
-    server = Server.query.filter_by(
-        id=sid, user_id=current_user.id
-    ).first()
+    # server = Server.query.filter_by(
+    #     id=sid, user_id=current_user.id
+    # ).first()
+
+    if Server.query.filter_by(id=sid, user_id=current_user.id).first():
+        server = Server.query.filter_by(
+            id=sid, user_id=current_user.id
+        ).first()
+    else:
+        server = SharedServer.query.filter_by(
+            id=sid, user_id=current_user.id
+        ).first()
 
     if server is None:
         return make_json_response(
diff --git a/web/pgadmin/tools/restore/__init__.py b/web/pgadmin/tools/restore/__init__.py
index ea9a3e82f..3bb9a9c5d 100644
--- a/web/pgadmin/tools/restore/__init__.py
+++ b/web/pgadmin/tools/restore/__init__.py
@@ -22,7 +22,7 @@ from pgadmin.utils import PgAdminModule, get_storage_directory, html, \
 from pgadmin.utils.ajax import make_json_response, bad_request
 
 from config import PG_DEFAULT_DRIVER
-from pgadmin.model import Server
+from pgadmin.model import Server, SharedServer
 from pgadmin.utils.constants import MIMETYPE_APP_JS
 
 # set template path for sql scripts
@@ -88,9 +88,15 @@ class RestoreMessage(IProcessDesc):
 
     def get_server_details(self):
         # Fetch the server details like hostname, port, roles etc
-        s = Server.query.filter_by(
-            id=self.sid, user_id=current_user.id
-        ).first()
+        if Server.query.filter_by(id=self.sid,
+                                  user_id=current_user.id).first():
+            s = Server.query.filter_by(
+                id=self.sid, user_id=current_user.id
+            ).first()
+        else:
+            s = SharedServer.query.filter_by(
+                id=self.sid, user_id=current_user.id
+            ).first()
 
         from pgadmin.utils.driver import get_driver
         driver = get_driver(PG_DEFAULT_DRIVER)
@@ -209,10 +215,14 @@ def _connect_server(sid):
     :param sid: Server ID.
     :return: if not error occurred then return connection data.
     """
-    # Fetch the server details like hostname, port, roles etc
-    server = Server.query.filter_by(
-        id=sid
-    ).first()
+    if Server.query.filter_by(id=sid, user_id=current_user.id).first():
+        server = Server.query.filter_by(
+            id=sid, user_id=current_user.id
+        ).first()
+    else:
+        server = SharedServer.query.filter_by(
+            id=sid, user_id=current_user.id
+        ).first()
 
     if server is None:
         return make_json_response(
@@ -466,9 +476,15 @@ def check_utility_exists(sid):
     Returns:
         None
     """
-    server = Server.query.filter_by(
-        id=sid, user_id=current_user.id
-    ).first()
+    # Fetch the server details like hostname, port, roles etc
+    if Server.query.filter_by(id=sid, user_id=current_user.id).first():
+        server = Server.query.filter_by(
+            id=sid, user_id=current_user.id
+        ).first()
+    else:
+        server = SharedServer.query.filter_by(
+            id=sid, user_id=current_user.id
+        ).first()
 
     if server is None:
         return make_json_response(
