![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Защищенная БД [D5, dBase, FoxPro]
SZap © (2002-12-02 16:48:00)Господа, что Вы посоветуете...
Мне необходимо написать программку, что-то типа БД"расход/приход денежных средств".
Идея такая: много пользователей, у каждого свой логин, пароль (свои расходы, приходы), все это должно быть реализовано в локальной БД, но без возможности правки ее не из программы.
passm (2002-12-03 11:57:00) [1]SZap (02.12.02 17:01)> В DB2, например, аутентификация может идти через домен NT, через локальных пользователей NT. А так же поддержка Kerberos.
Права пользователям раздаются на уровне БД.
А чтобы динамически менять доступ к строкам таблицы:
CREATE TABLE SCH.DOCS_USER
(LOGIN_NAME VARCHAR(16),
USER_NAME VARCHAR(64))
CREATE TABLE SCH.AFFIL_ACCESS
(DOCS_USER VARCHAR(16),
AFFILIATE INTEGER,
READONLY CHARACTER(1))
CREATE VIEW SCH.DOCUMENT AS
SELECT DT.*, Q1.READONLY
FROM EXP.DOC_TITLE DT
INNER JOIN SCH.AFFIL_ACCESS Q1 ON (DT.AFFILIATE = Q1.AFFILIATE)
WHERE Q1.DOCS_USER = USER
GRANT SELECT ON SCH.DOCUMENT TO USER PUPKIN
CREATE VIEW SCH.DOCUMENT_E AS
SELECT DT.*
FROM EXP.DOC_TITLE DT
WHERE DT.AFFILIATE IN (SELECT Q1.AFFILIATE
FROM SCH.AFFIL_ACCESS Q1
WHERE Q1.READONLY = "N"
AND Q1.DOCS_USER = USER)
WITH LOCAL CHECK OPTION
GRANT SELECT, UPDATE, INSERT, DELETE ON SCH.DOCUMENT_E TO USER PUPKIN
Запрашивая SCH.DOCUMENT пользователь PUPKIN получит только дозволенные ему данные и поле READONLY
Изменения делает в EXP.DOCUMENT_E.
Надеюсь, идея понятна.
Jeer (2002-12-03 11:57:00) [2]DBISAM (поддерживает шифрование)
www.elevatesoftware.com
greenpank (2002-12-03 09:28:00) [3]Можно в базе завести таблицу где будут хранится код приложения и код пользователя который может запускать это приложения потом проверять права пользователей на запуск приложения и действий с этим приложением лучше использовать Oracle 8i с компонентой для делфей ODAC 6.0 помойму называется
вот а методика кроме раздачи стандартных прав средствами базы даже той же InterBase мало будет. У нас это выгледело так примерно в InterBase была таблица Obj такой конфигурации Obj(id number, description char, code_obj char,user_id char,status number,access_user number(1-может изменять , 2-читать , -1 нечего не может));
в приложении в строке инициализации формы проверяли доступ пользователя к форме по коду приложения и коду пользователя в зависимости от access_user помогает для многих случиев!!
Александр Спелицин (2002-12-02 23:20:00) [4]Sybase SQL Anywhere (www.sybase.ru)
Карелин Артем (2002-12-02 17:04:00) [5]Я имел в виду шифровку-дешифровку средствами дельфей.
Anatoly Podgoretsky (2002-12-02 17:03:00) [6]Multitier - многозвеные базы данных, доступ до базы через сервер приложений (сама база должна быть не доступна по сети, желательно даже для администратора), но и в этом случае желательно, что нибудь другое, не dBase, FoxPro, а посерьезнее.
Карелин Артем © (02.12.02 16:53)
А индексирование, а запросы, конечно формат dBase поддерживает и права (8 уровней, влючитительно до отдельных полей) и шифрование, но из Дельфи эти возможности недоступны.
SZap (2002-12-02 17:01:00) [7]>>ТОлько не dBase, FoxPro!!
а че посоветуете (надеюсь не Access)???
я так понимаю, что все логины,пароли и права тоже должны находиться гдето внутри БД
Карелин Артем (2002-12-02 16:53:00) [8]Хотя если все значения хранить в шифранутом виде, то редактирование будет затруднительно. Но удаление работать будет.
Карелин Артем (2002-12-02 16:49:00) [9]ТОлько не dBase, FoxPro!!