Проблема с правами доступа к базе данных (sql server 2008)

Я создал приложение С#, которое читает файл конфигурации, получает строки подключения и для каждой строки подключения считывает список хранимых процедур для дальнейшей обработки. Теперь я столкнулся с некоторыми проблемами с разрешениями. При разработке приложения я использовал строки подключения с пользователями уровня dbo. Строки подключения в реальной жизни предназначены для пользователей sql с разрешениями только на чтение и запись данных, но когда я выполняю

select user_name(uid) as owner, name from dbo.sysobjects where type='P' order by name asc

чтобы получить список процессов, используя такого пользователя, запрос не возвращает никаких записей (хотя он возвращает процессы, если я выполняю как dbo)

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

Я использую SQL Server 2008


person Andrey    schedule 05.02.2010    source источник
comment
в стороне: в SQL Server 2005 и выше я бы использовал sys.procedures, а не устаревшие системные объекты. См. документы MSDN по системным объектам здесь: msdn.microsoft.com/en-us/ библиотека/ms177596.aspx   -  person marc_s    schedule 06.02.2010


Ответы (3)


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

person Jacob G    schedule 05.02.2010

используйте этот скрипт:

select user_name(schema_id) as owner, name from sys.procedures
person masoud ramezani    schedule 07.02.2010

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

person Andrey    schedule 09.02.2010