DBlink(s) какой из них безопаснее: общедоступная или частная?
Я пытаюсь думать о проблемах безопасности, используя частные / публичные ссылки.
Вы можете видеть то, о чем я говорю на картинке ниже
Итак, как показано на рисунке (правый вариант является общедоступным, а левый - личным), какой из них вы считаете безопасным?
1 ответ
Я бы предложил использовать ссылки на частные базы данных и создать представления для таблиц, к которым вам нужно получить доступ через ссылку на базу данных.
Итак, если у вас есть база данных db1 с пользователями user1db1, user2db1 и user3db1, которым требуется доступ к table1 в другой базе данных db2, сделайте так:
- создать пользователя linksdb1.
- Пусть этот пользователь владеет частной ссылкой на db2.
- Создайте представление linksdb1.table1 для table1@db2
- предоставить права на представление user1db1, user2db1 и user3db1.
Для этого есть две причины:
- Безопасность. Делая это, вы получаете полный контроль над тем, какие пользователи могут получить доступ к таблице через ссылку на базу данных, потому что им нужен доступ к представлению.
- Ремонтопригодность. Вам не нужно включать dblink в SQL, с точки зрения user1db1 он обращается к таблице с именем linksdb1.table1 вместо table1@db2. Таким образом, если вы переместите таблицу в еще одну базу данных, db3, вам нужно всего лишь изменить представление, а не все SQL.