diff --git a/flask_appbuilder/security/sqla/manager.py b/flask_appbuilder/security/sqla/manager.py
index <HASH>..<HASH> 100644
--- a/flask_appbuilder/security/sqla/manager.py
+++ b/flask_appbuilder/security/sqla/manager.py
@@ -311,8 +311,8 @@ class SecurityManager(BaseSecurityManager):
             )
             .exists()
         )
-        # Special case for MSSQL (works on PG and MySQL > 8)
-        if self.appbuilder.get_session.bind.dialect.name == "mssql":
+        # Special case for MSSQL/Oracle (works on PG and MySQL > 8)
+        if self.appbuilder.get_session.bind.dialect.name in ("mssql", "oracle"):
             return self.appbuilder.get_session.query(literal(True)).filter(q).scalar()
         return self.appbuilder.get_session.query(q).scalar()
Fixes authentication error when using oracle (#<I>)

This commit applies for oralce dialect the same query strategy already implemeted for MSSQL in

security manager when checking for authentication/permissions, since a

query like "SELECT EXISTS(1) FROM DUAL" in oracle databases would raise

an ORA-<I>: missing expression error (observed from version <I>c on)