Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с распределением доступа

1.1K
27 августа 2002 года
RedMax
3 / / 20.06.2000
Народ тут у меня возникли проблемы.
c MSSQL SERVER 2000
Если не трудно подскажите что-нибудь.

У меня есть таблица Personal, в которой
хранятся данные о персонале различных передприятий.
Основные поля в ней это табельный номер работника
и код предприятия в котором он работает.

У меня возникла следующая задача.

Отдел кадров предприятий должны добавлять изменять
и удалять работников в этой таблице.
ПРИ ЭТОТ ОНИ НЕ ДОЛЖНЫ ИМЕТЬ ВОЗМОЖНОСТЬ
УВИДЕТЬ, ИЗМЕНИТЬ ИЛИ УДАЛИТЬ ПОЛЬЗОВАТЕЛЯ
ЧУЖОГО ПРЕДПРИЯТИЯ.

Кто-то мне порекомендовали использовать
представление (view), который бы
отфильтровывал "чужие" записи и
выдавал только "свои". И запретить
удаление, добавление и изменение у таблицы
и разрешить эти действия у предсталвения.
Тогда всю работу с таблицей нужно делать
через это представление.

Я это все проделал и получил следующие результаты.

При использовании query analizer мне удается получить
данные, их изменить и добавить.

Но как только я пытаюсь сделать это в Enterprise Manager
(войти под неким пользователем, который имеет права на
изменение, добавления и удаления через представление), то при попытки
добавить или изменит запись получаю сообщения, что
не имею надлежащих прав для изменения таблицы.
Правильно, я и не имею их. Но я обращаюсь же через представление,
а на представление у меня вся права открыты)
Аналогичный результат я получаю, когда открываю
представление в какой-либо "сетки" (VB) в прикладной программе. Не удается
ни удалить, ни добавить, ни изменить.

Т.е. при непосредственном выдаче команды INSERT INTO phpbb2_View values..
все срабатывает, а при Адошных .AddNew.....Update - ОШИБКА.

Может быть подскажете что-нибудь по этому поводу. Либо
дадите совет: как мне решить задачу разделения доступа
другим путем.

Заранее благодарен за ответы.

С Уважением,
Ожерельев Максим.



609
11 сентября 2002 года
lpt
23 / / 20.01.2000
На таблицу необходимо давать права аналогичные правам представления. Исключение только одно - если владельцем представления является тот, кто создал таблицу на которую оно ссылается, права для этого пользователя (владельца) на таблицу можно не давать.

Сама идеология разграничения прав доступа с помощью представлений Вам была предложена правильно. Для того одни и существуют (если не считать, что часто их применяют чтобы скрыть сложные запросы, особенно объединяющие две и более таблиц).

Права на таблицу Вас смущать не должны - пользователи работают не с таблицами и даже не с видами, а с приложением, которое их вызывает. А если даже и влезут, то когда база хорошо нормализована, почти ничего в таблице не поймут - для всех кроме разработчика программы (и даже для системного администратора) это китайская грамматика с головоломными запросами.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог