Я пытаюсь повысить безопасность при подключении к нашей базе данных SQL Azure, создавая собственные роли и пользователей в зависимости от того, какой доступ к базе данных необходим. Большинство наших соединений осуществляются через Google Apps Script и ранее использовали логин администратора.
Я знаю, что не рекомендуется использовать роли db_datareader / db_datawriter, но у меня возникают проблемы с подключением, когда я использую пользовательские роли / пользователей и наши сценарии . Пользовательские учетные записи / роли отлично работают в SSMS, но когда я использую наш скрипт Google Apps, я получаю:
Connection URL is malformed
Я знаю, что учетная запись аутентифицируется, потому что, если я использую неправильный пароль, яполучить другую ошибку. Кроме того, сценарий по-прежнему работает с исходной учетной записью администратора базы данных и тестовой учетной записью , которую я назначил на роль db_datareader . Аккаунты с ролями db_datawriter также работают нормально. Поэтому я считаю, что это сообщение об ошибке не имеет ничего общего с фактическим URL-адресом соединения.
Кажется, есть некоторые разрешения, предоставленные db_datareader / db_datawriter, которые позволяют подключаться и запускаться внешним сценариям, и я не уверен, как его реплицировать. ,Возможно, это связано с запросом списка таблиц, к которым у учетной записи / роли есть доступ?
Вот снимок экрана с разрешениями пользовательской роли, я опустил имена баз данных и таблиц, но все они включены. та же база данных и разные таблицы и скалярные функции, которые нужны сценарию:
новые разрешения для ролей
Любая идея о том, что я могу попытаться воспроизвести эти «встроенные»роли?