Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Блокировка базы


Автор: Ivushka 30.5.2006, 10:47
Здрасьте!

прошу помощи!
надо закрыть достып к базе все пользователям пока работает программа.
нашла только блок таблиц...

может кто пожскажет как сделать проще? 

Автор: boevik 30.5.2006, 10:58
Какая СУБД?
Если есть возможность, то перевести базу в single user mode. 

Автор: Ivushka 30.5.2006, 11:02
программа на Access работает со связанными таблицами из MySQL.


Цитата(boevik @  30.5.2006,  10:58 Найти цитируемый пост)
Если есть возможность, то перевести базу в single user mode.  

я не знаю есть ли возможность вот и спрашиваю) 

Автор: Akina 30.5.2006, 11:40
См. справку по GRANT/REVOKE 

Автор: Ivushka 30.5.2006, 12:05
Цитата(Akina @  30.5.2006,  11:40 Найти цитируемый пост)
См. справку по GRANT/REVOKE  

это для VBA команды?
что-то найти не могу 

Автор: Sqlninja 30.5.2006, 12:24
Tools --> Options --> Advanced --> Default Open mode --> [SHARED / EXCLUSIVE] 

Автор: bas 30.5.2006, 12:35
Цитата(Ivushka @  30.5.2006,  12:05 Найти цитируемый пост)
это для VBA команды?
что-то найти не могу  

Это для SQL запроса. 

Автор: Ivushka 30.5.2006, 12:36
Мне программно надо!
чтобы когда программа запускается доступ закрыт для всех 
отработала доступ открыт! 

Автор: Akina 30.5.2006, 12:46
Ну... первым делом шлешь на сервер запрос, отбирающий у других юзеров все права, спокойно делаешь свое черное дело и затем опять разрешаешь им развлекаться с данными. 

Автор: Ivushka 30.5.2006, 14:32
Цитата(Akina @  30.5.2006,  12:46 Найти цитируемый пост)
Ну... первым делом шлешь на сервер запрос, отбирающий у других юзеров все права, спокойно делаешь свое черное дело и затем опять разрешаешь им развлекаться с данными.  

я так и хотела)

А можно пример а то седня совсем не соображается( 

Автор: Sqlninja 30.5.2006, 19:57
Код

REVOKE SELECT, UPDATE, INSERT, DELETE ON TABLE my_table FROM zlobniy_user;
...
chernoe_delo(p1,p2);
...
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE my_table TO zlobniy_user;
 

Автор: Ivushka 5.6.2006, 15:17
Sqlninja
а программа сможет при этом обращатся к таблицам? 

Автор: Akina 5.6.2006, 16:26
Цитата(Ivushka @  5.6.2006,  16:17 Найти цитируемый пост)
а программа сможет при этом обращатся к таблицам?  

Ну ты у себя-то права не отбирай, да... 

Автор: Ivushka 5.6.2006, 19:56
Цитата(Akina @  5.6.2006,  16:26 Найти цитируемый пост)
Ну ты у себя-то права не отбирай, да.

а как тогда??? 

Автор: LSD 5.6.2006, 23:25
Цитата(Ivushka @  5.6.2006,  20:56 Найти цитируемый пост)
а как тогда???

Когда ты производишь REVOKE то делай его для все хпользователей кроме текущего, хотя это не всегда сработает.

Ты уверена что тебе нужна полная блокировка таблиц? Может достаточно будет чтобы туда никто не писал в этот момент?

P.S. Ты решаешь задачу конктретно для MySQL, а не в общем случае, да? 

Автор: Sqlninja 7.6.2006, 00:20
Цитата(Ivushka @  5.6.2006,  15:17 Найти цитируемый пост)
Sqlninja
а программа сможет при этом обращатся к таблицам?  


Программа обращается к таблицам не просто так, а обязательно от имени какого-то пользователя. Если у этого пользователя права не отбирать, то сможет. 

Автор: Mephisto 26.6.2006, 10:58
ГЫ. А я у себя и не могу отобрать.  smile  smile  smile  smile  smile 
Сколько ни пишу Deny у меня везде доступ. Странно.  smile  

Автор: Akina 26.6.2006, 11:26
Цитата(Mephisto @  26.6.2006,  11:58 Найти цитируемый пост)
Сколько ни пишу Deny у меня везде доступ

А мож у тебя админские права на базу? или на сервер?  

Автор: Mephisto 26.6.2006, 11:29
На сервер точно нет. 
smile
А вот на базу есть. Ну дык неужели нельзя Deny на select сделать? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)