Задавайте вопросы, мы ответим
Вы не зашли.
Возникло 2 вопроса по работе с привилегиями столбца...
Есть некая таблица из X полей. Нужно на неё дать доступ юзеру, при чём писать ему можно только в Y полей. Создаём привилегии и работаем, всё ок. Проблема начинается тогда, когда:
1. Юзеру мало полей, ему нужно создать ещё одно. Если дать ему ALTER, то он сможет менять существующие поля, чего делать нельзя. Вопрос: есть ли что-то типа ALTER на уровне столбца?
2. Даём юзеру ALTER, надеясь на его порядочность. Он создаёт поле и тут грабли - в новое поле он не может писать данные, хотя по логике, является его "хозяином" и должен иметь туда полный доступ. Есть ли пилюля?
Неактивен
Юзеру можно дать права на запуск процедуры, которая будет добавлять новые поля (если такие ещё не существуют) и выставлять на них полные права для данного юзера.
P.S. А в какой задаче возникла такая необходимость?
Неактивен
Хм, интересное решение с процедурой
Задача - реализовать принцип очереди посредством БД. Т.е. создаём юзеру табличку, даём права записи и дальше сервер обрабатывает записи как ему нужно. Но вот некоторые юзеры просят добавить доп.поля. Каждый раз руками лазить в эти таблицы и менять права доступа уже надоело, вот и задумался над расширением прав юзеров.
Самое популярное доп.поле - это ид их локальной записи для связи с нашим ид Можно было бы просто создать такое поле для всех юзеров, но подвох в том, что некоторые юзеры просят текстовое поле, вместо числового)) Ну и если всем вешать текстовое поле - как-то неправильно будет.
Неактивен
Я бы им объяснил, что нужно хранить эти данные в своих таблицах, а не в общих.
Насколько я понимаю, у них есть право изменять свои таблицы — пусть там и хранят свои
связи. Это наиболее логичное решение, кажется.
Неактивен
С этим согласен, по началу так и делал, но начальство обычно возражает, когда не удовлетворяются потребности клиента
Неактивен
Потребность клиента — сделать так, чтобы работало. Сделать, чтобы работало
хорошо — лучше, чем сделать, чтобы работало плохо. У них будут гораздо
большие проблемы при добавлении колонок через процедуру, чем если они
добавят их у себя. Более того, они будут добавлять одинаковые колонки
просто потому что они не будут понимать, как это работает, и зачем это нужно.
Неактивен
И снова согласен
Но разве могут быть подводные камни при использовании подобных процедур? Кроме, конечно же, описания их использования)))
Неактивен
Да, конечно. Например, создание, скажем, 10000 одинаковых колонок с целыми числами.
Если не нравится — то пусть будет 1000 колонок типа LARGEBLOB. Каждая из которых
заполнена максимум в одной строке таблицы. По-моему, это мягко говоря странная
реализация
Неактивен
Уговорили))
Хотя можно ведь и ограничить количество и типы создаваемых полей
Отредактированно Neval (03.09.2009 09:32:42)
Неактивен