Реплицируйте разрешения db_datareader для подключения к Azure SQL из внешнего javascript - PullRequest
1 голос
/ 20 октября 2019

Я пытаюсь повысить безопасность при подключении к нашей базе данных 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, которые позволяют подключаться и запускаться внешним сценариям, и я не уверен, как его реплицировать. ,Возможно, это связано с запросом списка таблиц, к которым у учетной записи / роли есть доступ?

Вот снимок экрана с разрешениями пользовательской роли, я опустил имена баз данных и таблиц, но все они включены. та же база данных и разные таблицы и скалярные функции, которые нужны сценарию:

новые разрешения для ролей

Любая идея о том, что я могу попытаться воспроизвести эти «встроенные»роли?

1 Ответ

0 голосов
/ 20 октября 2019
  1. Убедитесь, что ваша настраиваемая роль находится в области базы данных (Разверните БД в SSMS -> Безопасность ...)
  2. Убедитесь, что ваш пользователь является правопреемником роли
  3. ПроверьтеСтрока подключения ссылается на имя базы данных
  4. Установите базу данных по умолчанию для пользователя из панели свойств пользователя

Чтобы получить разрешения для роли, вы можете использовать один из сценариев в эта тема .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...