Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];

Вниз

Администрирование   Найти похожие ветки 

 
Начинающий10   (2006-02-28 09:44) [0]

Господа программисты и им сочувствующие, поделитесь соображениями или опытом.
Собственно преамбула. Сделал не так давно программный комплекс на базе СУБД MSSQL который помимо прочего обеспечивал занесение, хранение и т.д. ретроспективной информации в следующих таблицах:
родительская, заточенная под DBTreeView, является в моем случаи хранилищем элементов оборудования;
дочерние таблицы (бланки), содержат, соответственно, описания элементов оборудования.
Ну и табличка с пользователями для примитивного администрирования на уровне бланка в целом (видимость, редактирование).
В общем типовая задачка :)
Все чудненько работает, но в последние время все настойчивее склоняют к более «глубокому» администрированию, а именно - редактирование, видимость и т.д. вплоть до записи в бланке и столбца бланка.  
Реализовал желание созданием дополнительного поля в родительской таблице в которое записывается объектик. Объектик, на каждую запись соответственно, содержит всю информацию о бланках > записях об элементе > столбцах > конкретном пользователе, и реализован на основе вложенных TCollection. Короче жуткий монстр и жрет достаточно много.  
Собственно не нравиться мне ента реализация, а другой придумать не могу :(. Поделитесь соображениями или опытом, возможно есть более простые и элегантные способы достигнуть результата (без использования средств СУБД). Спасибо.


 
MOA ©   (2006-02-28 09:50) [1]

1. Нормализовать Вашу базу минимум до 3-й усиленной нормальной формы.
Как только это будет сделано - Вы сможете воспользоваться механизмами безопасности MSSQL - ролями, правами на объекты.
Удачи!


 
Начинающий10   (2006-02-28 10:05) [2]

Собственно пожеланием было редактирование прав из дополнительной «программки» комплекса, то есть их администратор ничего не должен знать и не уметь пользоваться утилитами СУБД. Хотя я может что-то не понимаю, так как сам недавно переработал комплекс с Paradox на MSSQL без использования всяких прибомбасов.


 
clickmaker ©   (2006-02-28 10:16) [3]

создать что-то типа ACL
ACL_ID  User_ID Object_ID Rigths
где Object_ID либо таблица, либо запись, либо столбец
Rights - набор флагов (н-р, 1 - читать, 2 - писать, 4 - удалять, 0 или отсутствие записи - нет доступа)
в качестве Object_ID могут выступать и id из sysobjects и syscolumns для упрощения. Редактируется этот acl с самописного клиента, юзер в сиквельную секьюрити не лезет


 
MOA ©   (2006-02-28 10:22) [4]

>администратор ничего не должен знать и не уметь пользоваться утилитами СУБД
Для управления системой безопсности в MSSQL используются команды и процедуры самого MSSQL (не утилиты), т.е. админ может и не уметь, если написать для него соответствующую оболочку этих команд ;)
Посмотрите в BOL про GRANT, REVOKE, sp_addrole и по ссылкам с них.
Требование 3-й усиленной формы обусловлено тем, что в этом случае права можно назначить более детально  - конечно, механизмы безопасности сервера работают безотносительно к уровню нормализации.
Удачи!


 
Начинающий10   (2006-02-28 10:49) [5]

>[4] Оставлю на сладкое :)
>[3] Гениально. В смысле раньше не приходило в голову уникально обзывать записи и столбцы вне таблиц. Правда размерчек у этой таблицы будет :)    
Спасибочки.


 
Petr V. Abramov ©   (2006-02-28 21:50) [6]

> редактирование, видимость и т.д. вплоть до записи в бланке и столбца бланка.  
 Это как? половину бланка видно, половину - нет???
Может, не "склоняться", а за отдельные деньги продумать политику администрирования?



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.012 c
15-1144227742
sergeii
2006-04-05 13:02
2006.04.23
Pocket PC


2-1144232901
SveT
2006-04-05 14:28
2006.04.23
Относительный путь..


2-1144492883
Std
2006-04-08 14:41
2006.04.23
TstringList


15-1144265904
Ketmar
2006-04-05 23:38
2006.04.23
и ещё по поводу правописания


15-1144141938
Pazitron_Brain
2006-04-04 13:12
2006.04.23
Как можно соединить два компьютера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский