Если я создаю правила базы данных на стороне внешнего приложения (мобильного приложения), то нетрудно написать другое приложение, которое может сделать что-либо с базой данных в обход моего приложения. Не так ли?
Это очень верно; безопасность не должна быть (просто) во внешнем интерфейсе. Убедитесь, что ваш бэкэнд настроен таким образом, что он проверяет правила доступа каждый раз, когда кто-то пытается что-то сделать в бэкенде.
Теперь, что касается вашего вопроса: пожалуйста, реализуйте API, который подключается к вашей базе данных. С каждым клиентом, напрямую подключающимся к вашей базе данных, вы потеряете весь контроль. Если вы реализуете API спереди, вы можете делать такие вещи, как кэширование и асинхронная обработка, если вам нужно.
При реализации API вы можете сделать методы GET незащищенными, в то время как POST, PUT и DELETE используют (например) токен JWT, полученный из Azure Active Directory. Этот репо и презентация, на которую он ссылается, могут дать вам некоторую ссылку.