По сути, это говорит о том, что каждая строка независима в отношении безопасности на уровне строк.
Рассмотрим таблицу ниже:
+---------------------+----------------+
| field1 | field2 |
+---------------------+----------------+
| value1 | 1 |
| value1 | 2 |
| value1 | 3 |
| value2 | 4 |
+---------------------+----------------+
Существует несколько (разрешительных) политик:
field1 = 'value1'
field1 = 'value2'
- SUM (field2)> 10 (запрещено, но давайте пока представим, что вы можете его определить)
Вам были предоставлены политики № 2 и 3, поэтому вы можете просматривать и обновлять только последнюю запись.
... До тех пор, пока вы не выполните UPDATE table SET value2 = 11
.
Это действительно плохо с точки зрения:
- Безопасность . Вы можете «предоставить себе» доступ к записям как пользователь (а не как администратор).
- Техническое обслуживание . Записи будут появляться / исчезать случайным образом в такой базе данных.
- Производительность . Такая политика может стоить очень больших затрат.
Интересно, что вы можете определить политику как MyField IN (SELECT MyOtherField FROM MyOtherTable)
, и в этом случае все зависит от того, что вы определили для MyOtherTable
(она предназначена для использования с FK / PK).