Когда безопасность на уровне строк обеспечивается SQL Server?

avatar
thebluephantom
8 августа 2021 в 21:10
64
1
1

Если у вас есть сложный запрос с подзапросами, объединениями и т. д., применяется ли безопасность на уровне строк во время выполнения SQL или к конечному набору результатов?

Источник

Ответы (1)

avatar
zedfoxus
8 августа 2021 в 21:20
0

При доступе к данным оценивается безопасность на уровне строк (RLS). См. Система базы данных применяет ограничения доступа каждый раз, когда делается попытка доступа к данным с любого уровня.

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

Согласно http://sharewithpals.com/articles/637dd719/Steps-to-configure-row-level-security-in-SQL-Server-2016:

При выполнении оператора select строки фильтруются на основе контекста выполнения запроса.

Согласно https://www.sqlshack.com/introduction-to-row-level-security-in-sql-server/

Безопасность на уровне строк в SQL Server используется для ограничения пользователей на уровне базы данных, а не для обработки ограничений на уровне приложения. Этот контроль доступа применяется базой данных каждый раз, когда выполняется запрос к таблице, независимо от уровня приложения.

thebluephantom
8 августа 2021 в 21:29
0

То есть не только на окончательный набор результатов?

zedfoxus
8 августа 2021 в 21:57
0

@thebluephantom правильно, а не только в окончательном наборе результатов. Так получилось, что select будет применять/соблюдать RLS, и ваши окончательные результаты будут отражать это.