Разница между администратором и суперадминистратором в базе данных

2 апр. 2013 г., 13:02:05
Просмотры: 13.9K
Голосов: 3

Я смотрел таблицу пользователей и заметил, что у суперадминистратора (имеющего доступ к панели управления сетью) и администратора отдельного сайта в сети одинаковые значения wp_capabilitiesa:1:{s:13:"administrator";b:1;}, а также одинаковый wp_user_level равный 10.

Поэтому мне интересно: какое значение в базе данных отличает суперадминистратора от обычного администратора? Я не вижу дополнительных метаданных пользователя, связанных с уровнем администратора сети.

Как правильно назначить права суперадминистратора администратору:

  1. Через редактирование базы данных.
  2. С помощью кода.
0
Все ответы на вопрос 2
0

Администратор — это пользователь текущего сайта с ролью администратора.

Однако суперадминистраторы/администраторы сайтов хранятся в настройках сайта как массив имен пользователей.

Например, используя SQL в MySQLWorkbench, вы можете выполнить такой запрос:

SELECT * FROM wp_sitemeta where meta_key='site_admins';

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

Если вам просто нужно узнать, кто является администратором сайта, используйте эти функции:

get_site_admins();
is_super_admin();

Если это одиночный сайт, а не мультисайт, любой пользователь с возможностью delete_users будет считаться суперадминистратором.

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

2 апр. 2013 г. 13:08:34
0

Я проверил базу данных MultiSite и обнаружил следующие две записи в таблице wp_sitemeta, которые различают супер-администратора и обычного администратора:

admin_user_id и site_admins

2 апр. 2013 г. 13:09:45