sql 2005 - стратегия ограничения доступа только через хранимые процедуры - PullRequest
1 голос
/ 15 сентября 2010

Я хочу предоставить доступ к определенным данным в различных базах данных на одном экземпляре sql нашей материнской компании. Они не хотят веб-службы, а хотят хранимую процедуру, которая бы компилировала данные из разных источников данных и возвращала набор записей.

Существует доверие между нашими двумя доменами, поэтому по сути они находятся в нашем домене, и я просто предоставлю необходимые разрешения для объектов sql (хранимых процедур)

Я планирую создать базу данных «интеграции», в которой были бы необходимые хранимые процедуры.

Хотя база данных интеграции сама по себе не будет иметь таблиц, по крайней мере сейчас, я хочу заблокировать базу данных, чтобы не было дыр, например, если материнская компания может создавать таблицы в базе данных или влиять на разрешения и т. Д.

Каков рекомендуемый подход для блокировки моей «интеграционной» базы данных таким образом, чтобы у материнской компании был доступ только к запуску хранимых процедур, на которые я дал разрешения.

Как администратор SQL, я стал хорошим программистом .net, то есть, насколько я понимаю, он потребует от пользователя таких команд, как GRANT EXECUTE ON [процедура] ДО [пользователь], чтобы предоставить разрешения для выбранных хранимых процедур, но помимо этого Я не уверен в четкой стратегии достижения того, что мне нужно.

Я хочу убедиться, что не оставляю дыр в безопасности.

Если кто-нибудь может посоветовать шаги, которые мне нужно предпринять, то есть какие команды мне нужно выполнить, чтобы достичь того, чего я хочу, или указать мне хорошую статью, я был бы признателен.

Я уже выполнил команду REVOKE CONNECT FROM GUEST в базе данных.

1 Ответ

1 голос
/ 15 сентября 2010

Каков рекомендуемый подход для блокировки моей «интеграционной» базы данных таким образом, чтобы родительская компания имела доступ только к запуску хранимых процедур, на которые я явно предоставляю разрешения.

  1. Создать роль специально для пользователей из родительской компании
  2. Только предоставьте EXECUTE роли для определенной процедуры хранения
  3. Предоставьте роли роль db_datareader - это позволит им не создавать таблицы и т. Д.
...