2010-02-05 7 views
0

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

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

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

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

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

+0

как в стороне: на SQL Server 2005 и выше, Я бы использовал 'sys.procedures', а не устаревшие« sysobjects ». См. Документы MSDN по sysobjects здесь: http://msdn.microsoft.com/en-us/library/ms177596.aspx –

ответ

0

На самом деле я понял это - пользователь должен предоставить разрешения для каждого сохраненного прока мы хотим, перечисленный

1

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

0

использовать этот скрипт:

select user_name(schema_id) as owner, name from sys.procedures 
Смежные вопросы