|
|
|
Блокировка таблиц не используя LOCK TABLES
|
|||
|---|---|---|---|
|
#18+
Мой админ утверждает, что можно раздавать привилегии на блокировку таблиц не используя команду LOCK TABLES. В общем смотрел я в документации и ничего похоже не нашел (плохо искал, ну у меня это обычное дело). Администратор говорит, что Раздавать эту привилегю юзерам опасно, потому, что они могут заблокировать таблицу из которой должны только выберать записи, а ведь блокировка у меня используется только перед добавлением, на довольно продолжительное время. Еще говорит, что сам реализовал подобное(т.е. у юзера имели привилегию SELECT на N-ое кол-во таблиц в базе при этом могли блокировать только < N таблиц ), но только как он это делал мне не сказал, да я и не спрашивал, наверняка не вспомнит. Можете ли вы мне подсказать как это делается. Если такого не существует или не встречалось в вашей практике, то там и скажите, то за мои t-кол-во лет я такое не встречал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 08:45:51 |
|
||
|
Блокировка таблиц не используя LOCK TABLES
|
|||
|---|---|---|---|
|
#18+
SELECT ... FOR UPDATES; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 10:35:05 |
|
||
|
Блокировка таблиц не используя LOCK TABLES
|
|||
|---|---|---|---|
|
#18+
http://dev.mysql.com/doc/refman/4.1/en/innodb-locking-reads.html но тут _все_ селекты должны выполнятся FOR UPDATE, обычные селекты не будут блокированы а зачем вообщем нужна блокировка? мутит что-то админ :) к тому же можно создать специального юзера и/или дать права на конкретную таблицу... -- Dmitry ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 05:01:15 |
|
||
|
Блокировка таблиц не используя LOCK TABLES
|
|||
|---|---|---|---|
|
#18+
Про For UPDATES я знаю, вот только эту команду можно юзать на таблицах типа InnoDB, а на MyISAM нет. Я использую MyISAM. Так можно ли как-нибудь дать привилегию на блокировку таблицы именно на таблицу, а не на базу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 08:12:15 |
|
||
|
Блокировка таблиц не используя LOCK TABLES
|
|||
|---|---|---|---|
|
#18+
А вы можете объяснить, чего вы хотите добиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 08:23:34 |
|
||
|
Блокировка таблиц не используя LOCK TABLES
|
|||
|---|---|---|---|
|
#18+
dogma Так можно ли как-нибудь дать привилегию на блокировку таблицы именно на таблицу, а не на базу? RTFM ;) "To use LOCK TABLES, you must have the LOCK TABLES privilege and the SELECT privilege for the involved tables." для админа: http://dev.mysql.com/doc/refman/5.0/en/grant.html -- Dmitry ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 17:49:53 |
|
||
|
Блокировка таблиц не используя LOCK TABLES
|
|||
|---|---|---|---|
|
#18+
То, что это команда может использоваться только на таблицах их которых юзер может делать выбору я знаю (читал руководство) и объяснял это админу. Но он похоже слишком упертый или я не прав. Он говорит, что юзер может заблокировать табличку "А" из которой должен делать только выборку. При этом этот же юзер должен блокировать таблицы находящиеся в тойже базе, где и таблица "А". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 04:55:09 |
|
||
|
Блокировка таблиц не используя LOCK TABLES
|
|||
|---|---|---|---|
|
#18+
to DocAl В базе находятся таблицы типа MyISAM. Так вот - юзер имеет привилегию Select на 15 таблиц из этой базы, при этом он должен блокировать только 3 их них. Как этого добиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 04:59:59 |
|
||
|
Блокировка таблиц не используя LOCK TABLES
|
|||
|---|---|---|---|
|
#18+
dogmato DocAl В базе находятся таблицы типа MyISAM. Так вот - юзер имеет привилегию Select на 15 таблиц из этой базы, при этом он должен блокировать только 3 их них. Как этого добиться? А зачем нужно вообще блокировать таблицы? и вообще блокировать в Вашем случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 10:59:20 |
|
||
|
Блокировка таблиц не используя LOCK TABLES
|
|||
|---|---|---|---|
|
#18+
блокировка используется при добвлении записей. В таблице есть поле ,котору увеличивается на 1 при добавление каждой записи следующим образом. дата | счетчик ... 29-12-2005| 567 30-12-2005| 568 31-12-2005| 569 01-01-2006| 1 02-01-2006| 2 ..... 29-12-2006| 600 30-12-2006| 601 31-12-2006| 602 01-01-2007| 1 02-01-2007| 2 ..... Т.е. сброс происходит первого числа каждого года ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2005, 08:47:53 |
|
||
|
Блокировка таблиц не используя LOCK TABLES
|
|||
|---|---|---|---|
|
#18+
Забыл добавить. Следующее значение инкрементного (если можно так сказать) вычисляется из ризультата запроса Select max(inc_f) from table1. Т.к. с таблицей работают несколько юзеров одновременно, то существует вероятность внесения записей с одинаковым значением. Чтобы этого не случилось я и делаю блокировку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2005, 08:56:13 |
|
||
|
Блокировка таблиц не используя LOCK TABLES
|
|||
|---|---|---|---|
|
#18+
Э... А в чём глубокий смысл этой денормализации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2005, 09:42:04 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=33463689&tid=1853220]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
252ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 548ms |

| 0 / 0 |
