7

Я хочу, чтобы у нетехника (маркетинг / продажи) был доступ к данным, которыми я регулярно управляю через phpMyAdmin:

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

Я создал нового пользователя с ограниченными правами, но я не хочу, чтобы Мой не технический специалист использовал командную строку и изучал команды mysql.

Оптимально, я хочу, чтобы он мог заходить в пользовательский интерфейс phpmyadmin, но иметь только разрешенные способности (в данном случае только для чтения).

Нужно ли устанавливать отдельный phpmyadmin, где контролирующий пользователь является более слабым пользователем? Или есть специальный интерфейс для входа в систему под конкретным пользователем, который я пропустил в документации?

ОБНОВИТЬ:

Я видел экраны входа в систему, как предлагал googletorp, когда я использовал pmas, автоматически устанавливаемый хостами, но никогда в готовых версиях, которые я установил.

Я пытался закомментировать $ cfg ['Servers'] [$ i] ['user'], а $ cfg ['Servers'] [$ i] ['pass'] googletorp предложил - что, возможно, он предоставит мне логин экран. Но вместо этого я получаю ошибку # 1045:

# 1045 - Доступ запрещен для пользователя 'root' @ 'localhost' (используется пароль: НЕТ)

Тогда я подумал, возможно, закомментировать $ cfg ['Servers'] [$ i] ['controluser'] и $ cfg ['Servers'] [$ i] ['controlpass']. Но комментарии говорят, что они уже должны быть только для чтения.

гм ...

4 ответа4

4

phpmyadmin - это просто интерфейс для mysql. Вы можете делать только то, что вам разрешено, основываясь на пользователе, с которым вы входите в систему. В конце концов, phpmyadmin запускает для вас запросы с учетными данными пользователя, с которыми вы входите, и не может обойти разрешения mysql.

Так что если вы создаете пользователя с ограниченным доступом, он может использовать существующий phpmyadmin.

Вы можете попробовать это самостоятельно и войти в систему с созданным пользователем и посмотреть, как интерфейс выглядит с ограниченными разрешениями.

Обновить:

Из всех установок phpmyadmin, которые я пробовал среди разных хостинг-провайдеров, и т.д. Выглядит так:

авторизоваться

Теперь из вашего другого комментария видно, что вы отключили это, установив пользователя в файле конфигурации. Я не проверял это, так как я больше не использую phpmyadmin локально, но я думаю, что если вы удалите учетные данные mysql из файла конфигурации, вам вместо этого будет показан экран входа в систему выше. Позволяет использовать разных пользователей с разными разрешениями.

2

Если у вас установлен phpMyAdmin по умолчанию, вы используете аутентификацию 'config', а ваши имя и пароль хранятся в файле config.inc.php. Поскольку вы не видите экран входа в систему, у вас, вероятно, есть $ cfg ['Servers'] [$ i] ['auth_type'] = 'config', если вы проверите. Вы также увидите свое имя и пароль. Что-то вроде $ cfg ['Servers'] [$ i] ['user'] = 'root'; $ cfg ['Servers'] [$ i] ['password'] = ''; $ cfg ['Servers'] [$ i] ['AllowNoPassword'] = true;

Чтобы появился экран входа в систему, вы должны перейти к использованию аутентификации «cookie». Чтобы это произошло, необходимо внести два изменения в файл config.inc.php, и для безопасности настоятельно рекомендуется сделать третье изменение. Вы можете увидеть http://www.phpmyadmin.net/documentation/#faqmultiuser для получения дополнительной информации, если вы хотите узнать другие ваши варианты.

Я собираюсь перечислить изменения в порядке их появления в файле.

  1. (Рекомендуется) Измените blowfish_secret на любую случайную строку. Как говорится в комментариях к файлу, эта строка используется для шифрования вашего пароля при проверке подлинности на основе файлов cookie (что вы и собираетесь изменить).

    $cfg['blowfish_secret'] = 'random string';
    
  2. Вокруг строки 19 измените тип аутентификации на cookie

    $cfg['Servers'][$i]['auth_type']            = 'cookie'; /*DEFAULT: 'config'
    
  3. Удалите три строки, в которых хранится ваш пароль. (Если вы все еще используете пользователя 'root' с паролем '', вам, вероятно, следует это изменить. Пока вы вошли в phpMyAdmin как root, вы можете изменить / установить пароль.)

Сохраните файл, и с этого момента вы получите экран входа в систему и должны будете использовать имя пользователя и пароль.

1

Я не совсем понимаю, что вы просите ...

Если вы создали пользователя mysql в phpmyadmin, то ваш коллега может выполнять только те SQL-операции, которые вы позволили ему использовать.

Что ты хочешь этим сказать:

но я не хочу, чтобы Мой не-техник использовал командную строку и изучал команды mysql.

у вас есть phpmyadmin на локальном компьютере, на котором у вас установлен mysql? В любом случае он даже не может ничего сделать с помощью командной строки, конечно, если ваш коллега не знает других пользовательских логинов, которые имеют более высокие разрешения .. Если вы беспокоитесь о взломе пароля MySQL, я сомневаюсь, что ему удастся сделать это. Единственный риск заключается в том, что он может удалить файлы вашей базы данных. Но если вы создали для него пользователя (в любой операционной системе, которую вы используете), права которого не позволяют получить доступ к этим файлам базы данных, тогда вы в безопасности ...

1

В качестве альтернативы вы можете использовать Oracle SQL Developer + MySQL JDBC Driver

MySQL-драйвер

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .