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

Вниз

Security INTERBASE   Найти похожие ветки 

 
axelrodm   (2003-07-13 11:19) [0]

Уважаемые знатоки INTERBASE!

Как создать среду для LOCAL INTERBASE, чтобы
USER выполнял все действия только через хранимые процедуры,
НЕ ИМЕЯ доступа к таблицам!
Пытался решать задачу так.
Строил процедуру с правами на Таблицу и USER-Mikl с правами на выполнение этой процедуры и без прав на таблицу. В результате при запуске процедуры получаю сообщение, что USER не имеет доступа к ТАБЛИЦЕ!!!
Тексты привожу ниже.


CONNECT "D:\timetable\schooltimetable.gdb" USER "SYSDBA" PASSWORD "masterkey";
SET TERM ^ ;
/* CLIENT */
CREATE PROCEDURE REGISTR_CLIENT (
C_NAME VARCHAR(80),
C_ADDRESS VARCHAR(80),
C_PASSWORD VARCHAR(32))
RETURNS (
C_ID INTEGER,
C_NICKNAME VARCHAR(250))
AS
begin
/* Procedure Text */
insert into client(CLIENT_NAME,CLIENT_ADDRESS,CLIENT_PASSWORD)
values(:c_name,:c_address,:c_password);

select CLIENT_ID, CLIENT_NICKNAME from client where
CLIENT_NAME=:c_name and
CLIENT_ADDRESS=:c_address and
CLIENT_PASSWORD=:c_password
into :c_id, :c_nickname;
suspend;
end
^
GRANT ALL on CLIENT to registr_client;
GRANT EXECUTE ON PROCEDURE registr_client to mikl;


 
Rad   (2003-07-13 11:27) [1]

GRANT INSERT, SELECT ON client TO PROCEDURE Registr_Client;
RTFM, в общем ;-))


 
Rad   (2003-07-13 11:33) [2]

GRANT ALL on CLIENT to registr_client;
дает права пользователю registr_client (и неважно, что он не существует).
P.S. Да, и не подсоединяйся к базе локально ( CONNECT "D:\timetable\schooltimetable.gdb") - на более новых версиях FB это вообще невозможно), потому что несколько одновременных локальных коннектов не могут работать параллельно, а одновременные локальный и удаленный - могут запороть базу.
Пиши, в общем, CONNECT "localhost:D:\timetable\schooltimetable.gdb"


 
axelrodm   (2003-07-13 11:52) [3]

Пожалуйста прокомментируйте подробней ответ


> GRANT ALL on CLIENT to registr_client;
> дает права пользователю registr_client (и неважно, что он
> не существует).


Не понятно как USER mikl может обратиться к USER/procedure registr_client


 
Rad   (2003-07-13 11:57) [4]

> Не понятно как USER mikl может обратиться к USER/procedure registr_client
Если есть GRANT EXECUTE ON PROCEDURE registr_client TO mikl, а у процедуры есть GRANT ALL ON client TO PROCEDURE registr_client - то все должно работать.


 
axelrodm   (2003-07-13 12:38) [5]

Перезагрузил сервер.
запустил Скрипт
CONNECT "localhost:D:\timetable\schooltimetable.gdb" USER "SYSDBA" PASSWORD "masterkey";
revoke all on CLIENT from procedure REGISTR_CLIENT;
revoke all on REGISTR_CLIENT from MIKL;
commit;
GRANT ALL on CLIENT to procedure REGISTR_CLIENT;
GRANT EXECUTE ON PROCEDURE REGISTR_CLIENT to MIKL;
commit;
CONNECT "localhost:D:\timetable\schooltimetable.gdb" USER "MIKL" PASSWORD "aaa";
select C_ID, C_NICKNAME from REGISTR_CLIENT("jkhkjh","76575","pppp");

Плучил ответ
This user dos not have privilege to perform this operation on this object. no permition fo references access to table CLIENT
Запустил скрипт на SYSDBA и все прошло!
CONNECT "localhost:D:\timetable\schooltimetable.gdb" USER "SYSDBA" PASSWORD "masterkey";
revoke all on CLIENT from procedure REGISTR_CLIENT;
revoke all on REGISTR_CLIENT from MIKL;
commit;
GRANT ALL on CLIENT to procedure REGISTR_CLIENT;
GRANT EXECUTE ON PROCEDURE REGISTR_CLIENT to MIKL;
commit;
PASSWORD "aaa";
select C_ID, C_NICKNAME from REGISTR_CLIENT("jkhkjh","76575","pppp");


 
axelrodm   (2003-07-13 13:08) [6]


Спасибо всем за участие

Проблема решается представлением MIKL
GRANT references on CLIENT to MIKL;

Иными словами.
GRANT ALL on CLIENT to procedure REGISTR_CLIENT;
GRANT EXECUTE ON PROCEDURE REGISTR_CLIENT to MIKL;
GRANT references on CLIENT to MIKL;


С уважением. Михаил Аксельрод



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

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

Наверх





Память: 0.46 MB
Время: 0.008 c
3-10081
Alfred77777
2003-07-11 14:33
2003.08.04
Не получается вывести таблицу в режим редактирования


14-10407
Князь Мышкин
2003-07-16 12:38
2003.08.04
Требуется хакер!


14-10416
Dmitriy O.
2003-07-17 08:31
2003.08.04
Строковые матрицы как альтернатива Memo полям


1-10265
gSergei
2003-07-21 16:48
2003.08.04
Строки


6-10328
Sa
2003-05-18 15:30
2003.08.04
свойство Connection





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский