SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 06.02.2010 19:30:15

Артём Н.
Активист
Зарегистрирован: 03.11.2009
Сообщений: 156

Права и процедуры

Пусть у меня в некоторой БД есть таблицы, которые хранят информацию о пользователях
(настройки клиента, личные данные).
Информация о всех пользователях может быть доступна только администратору.
Но каждому пользователю должна быть доступна строка с его данными.

Возможно ли такое организовать (самому сейчас не проверить)?

Например что-то вроде такого:
1.) Полностью запретить доступ к этим таблицам. Всем, кроме админа.
2.) Создать процедуру, которая проверяет хост/логин (ключи в этих таблицах) и
выдаёт нужную строку.

Учитывают ли процедуры права или всегда выполняются с правами администратора?


"И ни птица, ни ива слезы не прольет,
Если сгинет с земли человеческий род.
И весна, и весна встретит новый рассвет,
Не заметив, что нас уже нет..."

Неактивен

 

#2 06.02.2010 19:35:51

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Права и процедуры

При создании процедуры указавается с какими правами она запускается: с правами создателя процедуры или юзера, который запускает. Соответственно, вам нужен второй вариант.

Неактивен

 

#3 06.02.2010 19:40:18

Артём Н.
Активист
Зарегистрирован: 03.11.2009
Сообщений: 156

Re: Права и процедуры

А есть какие-то переменные, содержащие текущие хост/логин?
И все процедуры глобальны, не привязаны к БД или глобальны только функции?

Отредактированно Артём Н. (06.02.2010 19:42:20)


"И ни птица, ни ива слезы не прольет,
Если сгинет с земли человеческий род.
И весна, и весна встретит новый рассвет,
Не заметив, что нас уже нет..."

Неактивен

 

#4 06.02.2010 20:04:16

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Права и процедуры

1. select current_user();

2. Вообще-то процедура является объектом базы данных, т.е. не может быть создана без привязки к конкретной базе.

Неактивен

 

#5 06.02.2010 20:09:20

Артём Н.
Активист
Зарегистрирован: 03.11.2009
Сообщений: 156

Re: Права и процедуры

Вообще-то процедура является объектом базы данных, т.е. не может быть создана без привязки к конкретной базе.

Хм... Хотя, в принципе, к БД mysql её возможно привязать... Тоже вроде глобальной получится.
Ну, в общем, понятно. Вопрос решён.
Спасибо.


"И ни птица, ни ива слезы не прольет,
Если сгинет с земли человеческий род.
И весна, и весна встретит новый рассвет,
Не заметив, что нас уже нет..."

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson