На первый вопрос уже ответили u_mulder в комментариях, поэтому я отвечу на ваш второй вопрос относительно защиты соединений с базой данных.
Прежде всего, проблема в том, что вы не доверяете разработчикам, работающим над этим кодом.
Во-вторых, если вы разделите свой код на несколько проектов и репозиториев, вы сможете контролировать, какой разработчик имеет доступ к какому проекту / репо. То, как я делал это в прошлом (но по разным причинам), - это наличие проекта, который отвечает за подключение к базе данных и извлечение / хранение / обновление любых данных, и все мои другие модули / проекты вызывают его, чтобы получить некоторые данные из база данных.
Это было бы как частный API между вашей базой данных и приложением.
Другим решением было бы ограничить тип запросов, которые может выполнять конкретный пользователь базы данных, если вы беспокоитесь о том, что они обращаются к базе данных и используют ее для запуска запроса, который не выполняется в базе данных, тогда просто не t разрешить этому пользователю выполнять любые запросы, которые находятся за пределами кодовой базы (т. е. если пользователь только просматривает tableX в коде, предоставьте этому пользователю привилегию просмотра только для tableX)