Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте все!
Есть пользователи Mysql с различными правами и тд, есть таблица, где должны быть данные об этих пользователях.
Как увязать одно с другим? Подскажите пожалуйста.
Неактивен
Здравствуйте.
Существует два способа для чтения данных о пользователях MySQL.
1. Системные таблицы в БД mysql. Как правило, они разные
в разных версиях сервера и работать с ними не очень удобно.
2. Таблицы в БД INFORMATION_SCHEMA:
USER_PRIVILEGES - список глобальных прав (на весь сервер)
SCHEMA_PRIVILEGES - список прав на БД
TABLE_PRIVILEGES - список прав на таблицы
COLUMN_PRIVILEGES - список прав на колонки
Для изменения прав доступа лучше всего использовать команды
GRANT (т.к. они не зависят от версии сервера).
Неактивен
Это всё понятно. Спасибо
А хотел я заводить на каждого "сотрудника", нового пользователя со своими правами в БД, что конечно же делать не нужно. Просто по "темноте" не допетрил.
Сотрудников может быть много, а пользователей БД с правами доступа, например ("редактор", "читатель"), всего несколько.
Неактивен
Такая сторона имеет свои плюсы и свои минусы. Плюсы, разумеется, в упрощении
администрирования. Минусы - в том, что Вы не можете различать пользователей.
CURRENT_USER(), к примеру, не будет конкретизировать пользователей (например,
для аудита действий).
Опыт показывает, что в реальных приложениях пользователей реально не много
(обычно - 1-2), а все проверки прав перекладываются с сервера на само приложение.
Плюсы этого подхода в основном прикладные - приложение может быть более
дружелюбным к пользователю. Например, оно может написать, что "изменять записи
в журнале может только редактор", против скупого "нет прав на добавление строки",
которое может вернуть SQL-сервер.
Конкретный выбор подхода, разумеется, за Вами.
Неактивен