Права на запуск системных процедур? - PullRequest
0 голосов
/ 15 июля 2010

Может ли пользователь, не являющийся adssys, запускать системные процедуры?

Я разрабатываю адаптер BizTalk WCF для Advantage, который можно использовать, и мне нужно просмотреть и разрешить метаданные. Это надстройка для Visual Studio, поддерживающая .Net 2.0 или выше, которая генерирует схемы и файл привязки (wsdl). Он также может генерировать классы, которые можно использовать в службе WCF.

Наша база данных содержит более 1000 таблиц, 50 представлений и 50 процедур. Мы хотим присвоить объекты идентификатору пользователя и просто вернуть объекты, принадлежащие пользователю.

Спасибо

Howard

Ответы [ 2 ]

1 голос
/ 15 июля 2010

Да, пользователь, не являющийся adssys, может запускать системные процедуры и использовать команду select для извлечения информации из системных таблиц. Advantage использует разрешение и систему на основе пользователя / роли для определения доступа пользователя к объектам в базе данных. Разрешение пользователя будет определять, может ли процедура быть выполнена успешно или какой объем информации возвращается из системных таблиц.

Эта ссылка предоставляет исчерпывающую информацию о системе разрешений в словаре данных Advantage.

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

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

Предпочтительным методом управления разрешениями является назначение пользователей группам (ролям) и предоставление разрешений группам. Пользователь, принадлежащий к группе, унаследует разрешение от группы.

0 голосов
/ 16 июля 2010

Концептуально вы можете захотеть взглянуть на сохранение / извлечение метаданных из описательной таблицы, а затем использовать результат THAT для возврата ваших объектов. У вас есть единая точка доступа для всех пользователей, использующих возможность фильтрации по предложению SQL. Когда у вас есть данные объекта, вы можете использовать разрешенного «пользователя» для возврата объектов без фактического предоставления доступа отдельным пользователям. Просто идея.

...