Новости | Документация | Download | Webboard | FAQ | Поиск | Контакты

Apache.RU - Webboard



Вернуться
Распределение прав доступа на уровне таблиц (xl) 23/06 - 12:21:46
      Re: Распределение прав доступа на уровне таблиц (Dinky) 23/06 - 19:15:44
      Re: Распределение прав доступа на уровне таблиц (xl) 24/06 - 15:42:51
      Re: Распределение прав доступа на уровне таблиц (Dinky) 24/06 - 18:25:08
      Re: Распределение прав доступа на уровне таблиц (xl) 25/06 - 14:32:43
      Re: Распределение прав доступа на уровне таблиц (xl) 25/06 - 15:49:52
      Re: юзайте production версии и будет вам... (Dinky) 25/06 - 19:53:54
      Re: Распределение прав доступа на уровне таблиц (МАРИАННА) 21/04 - 17:04:20

> Original message text:
> From: > xl - 23/06 - 12:21:46
> Subject:Распределение прав доступа на уровне таблиц
> -----------------
> есть юзер: blabla@loclahost с паролем some_pass
> есть db: cooldb в которой blabla@loclahost должен иметь доступ к некоторым таблицам на INSERT, UPDATE, SELECT, DELETE в разных вариациях.
>
> для blabla@loclahost:
> в mysql.user привелегии USAGE(т.е. глобальных привелегий нет - везде N)
> в mysql.db привелегии USAGE
> в mysql.tables_priv для разных таблиц назначены привелегии на INSERT, UPDATE, SELECT, DELETE в разных вариациях.
>
> Проблемы:
> 1)При подсоединении выдается ошибка " Access denied for user: 'blabla'@'localhost' to database 'cooldb'"
> Это лечится если добавить в mysql.db привелегию SELECT командой "GRANT SELECT ON cooldb.* to blabla@loclahost identified by 'some_pass'". Но тогда не работают привелегии в mysql.tables_priv на таблицы (записи есть но они не работают - Access denied for user: 'blabla'@'localhost' to database 'cooldb') и приходится снова назначать для каждой таблицы привелегии(я думаю что это происходит от того что заново изменяется пароль - identified by 'some_pass'). Пароли при назначениях привелегий указывал одинаковые везде.
>
>
> Вопросы:
> 1) Можно ли при привелегиях в mysql.db равным USAGE для cooldb, а в mysql.tables_priv имея реальные привелегии на таблицы данной дб, подсоединятся к дб. Если можно, то почему у меня не работает.
> 2) Как можно назначать привелегии не указывая пароль. GRANT SELECT ON cooldb.* to blabla@loclahost работает если юзер будет без пароля.
> insert into mysql.tables_priv (Host, Db, User, Table_name, Grantor, Timestamp, Table_priv) values('loclahost', 'cooldb', 'blabla', 'chole_discussion', 'root@localhost', false, 'Select,Insert,Update,Delete'); flush privileges тоже не помогло
>


From: xl - 24/06 - 15:42:51
Subject:Распределение прав доступа на уровне таблиц
-----------------
1) удалил запись в mysql.db. Все работало. Я сервер перезапустил и снова " Access denied for user: 'blabla'@'localhost' to database 'cooldb'".

2) если в GRANT не указывать identified by 'some_pass', то изменяется пароль на пустой для юзера(хотя запись Password в mysql.user содержит все тотже зашифрованный пароль). И подключится можно уже только не указывая пароль. Это лечится если заново задать пароль командой SET PASSWORD.
И еще когда вновь заносишь запись в mysql.db с помощью "GRANT SELECT ON cooldb.* to blabla@loclahost identified by 'some_pass'" то записи созданные в mysql.tables_priv уже не работают(хотя строки никуда не деваются) - их снова надо заносить.

Вот выписка из мануала:
Если приведенное выше описание вычислений привилегий пользователя перевести на язык алгебры логики, используя логические операторы, то в результате получится примерно следующее:

global privileges
OR (database privileges AND host privileges)
OR table privileges
OR column privileges

Т.е. если я правильно понимаю, чтобы разрешить привелегию для таблицы, нужна запись в mysql.user USAGE для юзера и хотя бы разрешение привелегии в одной из следующих таблиц: mysql.db, mysql.tables_priv, mysql.columns_priv. Но это не работает. Т.к. если не разрешить SELECT в mysql.db, то сервер не даст соединиться с ДБ.


[Это сообщение - спам!]

Последние сообщения из форума

 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
28908




  Copyright Apache.ru © 1999-2017, All Rights Reserved Разработка сайта: Inside.ru  
  РЕКЛАМА НА САЙТЕ: |