Intereting Posts
Предложения / Трюки для дросселирования скрипта PHP Преобразование временной метки в относительную дату / время (например, «2 минуты назад») и постоянное обновление ее с помощью Javascript подключение к базе данных quickbooks через odbc с php? Статические переменные PHP в двойных кавычках получение json_encode для исключения элементов html Сделайте строчку в нижнем регистре, куда ее поместить Woocommerce WC_Order get_shipping_address () не возвращается как массив Импортируйте большой файл csv в базу данных mysql, используя php Самый эффективный с точки зрения памяти способ разделить куски переменной величины? Публикация сообщения на стене пользователя приложением facebook Записи SQL, срок действия которых истекает через 24 часа Загрузка фотографий CodeIgniter Форма HTML просто не отправит некоторые POST-переменные в скрипт PHP Как вернуть подкласс из конструктора в PHP PHP-дата-время

Обмен пользователями между двумя базами данных

Я разрабатываю это приложение на PHP. Приложение будет состоять из области администрирования, которая также будет содержать функции сотрудников. Другая часть приложения – клиентский сайт.

Область администрирования имеет свою собственную базу данных. Клиентский сайт также имеет свою собственную базу данных.

В базе данных администрирования у меня есть таблица с пользователями, и я также планирую реализовать RBAC, чтобы пользователи могли иметь роли, разрешения и т. Д.

Клиентский сайт также позволяет клиентам регистрироваться и храниться в пользовательской таблице в базе данных веб-сайта клиента.

То, что мне нужно, – это возможность иметь сотрудников, которые входят в систему на веб-сайте клиента. Они также должны иметь разрешения, которые контролируют, какие части веб-сайта клиента они могут изменить, и какие строки в базе данных веб-сайта клиента они могут изменить.

Каков наилучший способ реализации этого?

Приветствия 🙂

Solutions Collecting From Web of "Обмен пользователями между двумя базами данных"

Я бы рекомендовал всегда объединять, когда это возможно, таблицы, обрабатывающие одну и ту же концепцию (Пользователи здесь).

Здесь проблема защиты данных , независимо от того, как хранятся ваши данные (одна или две таблицы, одна или две базы данных).

С MySQL (и многими другими распространенными СУБД) вы можете:

  • Создайте учетную запись MySQL, которая будет иметь доступ только к некоторым таблицам, выполнять только некоторые операции над ней (например, только SELECT), доступ к некоторым столбцам и т. Д.

  • Скрыть таблицу из учетной записи MySQL и предоставить только доступ к представлению в этой таблице (фильтрация столбцов / результатов таблицы).

Какова бы ни была ваша структура данных, вам нужно будет проверить некоторые данные о сотрудниках (логин, пароль, разрешения и т. Д.), И вашему коду придется использовать учетную запись MySQL с достаточными привилегиями для этого.

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

Имейте в виду отдельно решать проблемы с архитектурой базы данных и проблемами безопасности доступа к данным . Безопасность доступа к данным не должна приводить вас к нелогичным выборам в дизайне базы данных.

Вы можете сделать что-то вроде этого:

$sql = "SELECT * FROM employeedb.employee_user_table WHERE employee_id = '???'"; 

В качестве проблемы комментариев из нитератора. Для двух пользовательских таблиц вы можете использовать следующее:

  • создать новую таблицу. например: global_user_table с полем:

    • Идентификатор пользователя
    • проходить
    • table_source (источник реальной таблицы)
    • is_special_user (или что-то в этом роде)
    • additional_field1
    • additional_field2
    • etc, etc, etc
  • каждый раз при входе в систему пользователя, попросите его проверить эту таблицу и сохранить table_source в сеансе для последующих использования.