Задавайте вопросы, мы ответим
Вы не зашли.
Пусть у меня в некоторой БД есть таблицы, которые хранят информацию о пользователях
(настройки клиента, личные данные).
Информация о всех пользователях может быть доступна только администратору.
Но каждому пользователю должна быть доступна строка с его данными.
Возможно ли такое организовать (самому сейчас не проверить)?
Например что-то вроде такого:
1.) Полностью запретить доступ к этим таблицам. Всем, кроме админа.
2.) Создать процедуру, которая проверяет хост/логин (ключи в этих таблицах) и
выдаёт нужную строку.
Учитывают ли процедуры права или всегда выполняются с правами администратора?
Неактивен
При создании процедуры указавается с какими правами она запускается: с правами создателя процедуры или юзера, который запускает. Соответственно, вам нужен второй вариант.
Неактивен
А есть какие-то переменные, содержащие текущие хост/логин?
И все процедуры глобальны, не привязаны к БД или глобальны только функции?
Отредактированно Артём Н. (06.02.2010 19:42:20)
Неактивен
1. select current_user();
2. Вообще-то процедура является объектом базы данных, т.е. не может быть создана без привязки к конкретной базе.
Неактивен
Вообще-то процедура является объектом базы данных, т.е. не может быть создана без привязки к конкретной базе.
Хм... Хотя, в принципе, к БД mysql её возможно привязать... Тоже вроде глобальной получится.
Ну, в общем, понятно. Вопрос решён.
Спасибо.
Неактивен