ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π² доступа (RLS) Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ являСтся ΠΌΠΎΡ‰Π½Ρ‹ΠΌ инструмСнтом Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Π΅Π³ΠΎ настройка часто Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ слоТности Π΄Π°ΠΆΠ΅ Ρƒ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроСнныС ограничСния ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ критичСским ошибкам Π² бизнСс-процСссах. ПониманиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ доступа Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ записСй являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ Π½Π°Π²Ρ‹ΠΊΠΎΠΌ для любого спСциалиста ΠΏΠΎ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΡŽ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ RLS Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ систСмного ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ нСсколько слоСв систСмы: ΠΎΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ Π³Ρ€ΡƒΠΏΠΏ доступа. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, подставляя Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ условия Π² запросы ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ услоТняСт диагностику ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ТалуСтся, Ρ‡Ρ‚ΠΎ Β«Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Β», ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΡ€Ρ‹Ρ‚ΡŒΡΡ Π² дСсятках Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², начиная ΠΎΡ‚ ΠΏΡ€Π°Π² Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ заканчивая Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ инструмСнты ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ быстро Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. ΠœΡ‹ рассмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»Π΅Ρ€ΠΎΠΌ, Π°Π½Π°Π»ΠΈΠ· SQL-запросов ΠΈ спСцифичСскиС настройки ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚Β» систСмы бСзопасности. Π’Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ Π½Π΅ просто Π³Π°Π΄Π°Ρ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ доступ, Π° Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ сбоя.

Анализ ΠΏΡ€Π°Π² доступа Ρ‡Π΅Ρ€Π΅Π· интСрфСйс ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π°

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ этапом диагностики всСгда Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° настроСк ΠΏΡ€Π°Π² нСпосрСдствСнно Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅. Π­Ρ‚ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ ошибки Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ€ΠΎΠ»Π΅ΠΉ. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ Β«Π ΠΎΠ»ΠΈΒ» ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ Π³Π°Π»ΠΎΡ‡ΠΊΠΈ ΠΏΡ€Π°Π² Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ отсутствиС ΠΏΡ€Π°Π²Π° Π§Ρ‚Π΅Π½ΠΈΠ΅ автоматичСски Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π»ΡŽΠ±Ρ‹Ρ… RLS.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ слСдуСт ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ доступа Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ записСй». Π—Π΄Π΅ΡΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ условия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊ запросам. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ограничСниями записСй. Если Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅Ρ‚ ΠΏΡ€Π°Π² Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ справочника «НомСнклатура», Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ограничСния RLS ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ β€” доступ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ.

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… условий ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ просмотра ΠΏΡ€Π°Π². НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΏΡ€Π°Π²Β» Π² ΠΎΠΊΠ½Π΅ рСдактирования Ρ€ΠΎΠ»ΠΈ. БистСма сформируСт ΠΎΡ‚Ρ‡Π΅Ρ‚, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π² с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ всСх наслСдований ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, Π½Π΅ пСрСбирая Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ дСсятки связанных ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ Π³Ρ€ΡƒΠΏΠΏ доступа.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Β«Π‘Ρ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π°Β» Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ наглядно ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€Π°Π²Π°ΠΌΠΈ администратора ΠΈ ΠΏΡ€Π°Π²Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Часто ошибка кроСтся Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ Π½Π΅ Ρ‚ΠΎΠΉ Ρ€ΠΎΠ»ΠΈ ΠΈΠ»ΠΈ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ доступа. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ: ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ -> ΠŸΡ€ΠΎΡ„ΠΈΠ»ΡŒ Π³Ρ€ΡƒΠΏΠΏ доступа -> Роль -> ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅. Π Π°Π·Ρ€Ρ‹Π² Π½Π° любом ΠΈΠ· этих этапов ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ RLS просто Π½Π΅ сработаСт.

ИспользованиС тСхнологичСского ΠΆΡƒΡ€Π½Π°Π»Π° ΠΈ ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»Π΅Ρ€Π°

Когда Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ Π½Π΅ выявила явных ошибок, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Π°Π½Π°Π»ΠΈΠ·Ρƒ выполнСния ΠΊΠΎΠ΄Π°. ВСхнологичСский ΠΆΡƒΡ€Π½Π°Π» (Π’Π–) ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ прСдоставляСт Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ всСх событиях, происходящих Π² систСмС. Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ RLS Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ события, связанныС с Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ запросов ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΠΏΡ€Π°Π² доступа.

НастройтС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ тСхнологичСского ΠΆΡƒΡ€Π½Π°Π»Π°, Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ² события DBMSSQL (ΠΈΠ»ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π‘Π£Π‘Π”) ΠΈ SDBL. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ тСкст запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° отправляСт ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Π»ΠΎΠ³Π°Ρ… Π²Ρ‹ смоТСтС ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ модифицируСтся ваш исходный запрос условиями ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ доступа. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это выглядит ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ слоТного условия WHERE с подзапросами ΠΈΠ»ΠΈ соСдинСниями.

  • πŸ” Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ события SDBL с ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Β«ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ тСкст запросов Π΄ΠΎ ΠΈ послС примСнСния RLS.
  • πŸ“Š АнализируйтС врСмя выполнСния запросов: слоТныС ограничСния ΠΌΠΎΠ³ΡƒΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ систСмы.
  • βš™οΈ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ rac для управлСния настройками ΠΆΡƒΡ€Π½Π°Π»Π° Π±Π΅Π· пСрСзапуска сСрвСра 1Π‘.

ΠŸΡ€ΠΎΡ„Π°ΠΉΠ»Π΅Ρ€ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдприятия Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ инструмСнтом. ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ (ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΊ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΌΡƒ сСансу) ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ дСйствиС, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. ΠŸΡ€ΠΎΡ„Π°ΠΉΠ»Π΅Ρ€ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π΄Π΅Ρ€Π΅Π²ΠΎ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ врСмя выполнСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ участка ΠΊΠΎΠ΄Π°. Если ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² RLS, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ частыС Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€Π°Π².

Как Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ SQL Π² Π»ΠΎΠ³Π°Ρ…?

Π’ Π»ΠΎΠ³Π°Ρ… Π‘Π£Π‘Π” ΠΈΡ‰ΠΈΡ‚Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°ΠΌ Ρ‚Π°Π±Π»ΠΈΡ† вашСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ RLS часто Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ слоТныС JOIN с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ ΠΏΡ€Π°Π² доступа, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ SQL-ΠΊΠΎΠ΄ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ логирования тСхнологичСского ΠΆΡƒΡ€Π½Π°Π»Π° Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π±Π°Π·Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ быстрому заполнСнию дискового пространства ΠΈ сниТСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эти инструмСнты Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° тСстовых копиях ΠΈΠ»ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π½ΠΈΠ·ΠΊΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдприятия с ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ

НаиболСС Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ диагностики β€” это пошаговоС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. ЗапуститС 1Π‘ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдприятия с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ /debug ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΊ сСансу ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ρ‡Π΅Ρ€Π΅Π· мСню «АдминистрированиС». УстановитС Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² Ρ‚Π΅Ρ… мСстах, Π³Π΄Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ запросы ΠΈΠ»ΠΈ происходит Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

Когда Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ остановится Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ останова, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΈΠ½ΡΠΏΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Запрос. Π’ ΠΎΠΊΠ½Π΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° доступно свойство, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ тСкст запроса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ Π² Π‘Π£Π‘Π”. Π­Ρ‚ΠΎ свойство часто называСтся ВСкстЗапроса ΠΈΠ»ΠΈ доступно Ρ‡Π΅Ρ€Π΅Π· контСкстноС мСню ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° запроса. ИмСнно здСсь Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ запроса со всСми Β«Π²ΡˆΠΈΡ‚Ρ‹ΠΌΠΈΒ» условиями RLS.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹Π”ΠΎΡΡ‚ΡƒΠΏΠ° Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ запроса. ИмСнно Ρ‡Π΅Ρ€Π΅Π· эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ значСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ограничСниях (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, организация, ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅). Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ запроса. Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ пуст ΠΈΠ»ΠΈ содСрТит Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, условиС RLS ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΠ΅Ρ‡ΡŒ всС записи.

β˜‘οΈ Диагностика Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Иногда ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ограничСния доступа для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π³ΠΈΠΏΠΎΡ‚Π΅Π·Ρ‹. Π’ ΠΊΠΎΠ΄Π΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠŸΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉΠ Π΅ΠΆΠΈΠΌ(Π˜ΡΡ‚ΠΈΠ½Π°). Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ администратора, игнорируя RLS. Если Π² ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ‚ΠΎΡ‡Π½ΠΎ Π² настройках ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, Π° Π½Π΅ Π² Π»ΠΎΠ³ΠΈΠΊΠ΅ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΏΡ€ΠΈ настройкС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ

БущСствуСт ряд Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ошибок, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΈ RLS. ПониманиС этих ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² позволяСт ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° поиск нСисправности. Одна ΠΈΠ· самых частых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ β€” цикличСскиС зависимости ΠΈΠ»ΠΈ отсутствиС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… индСксов Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ запрос с ограничСниями выполняСтся бСсконСчно Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ»ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚.

Другая распространСнная ошибка связана с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² условиях ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. Если Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ RLS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ слоТная функция, которая выполняСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСмы ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΠ°ΡΡ‚ΡŒ катастрофичСски. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ стараСтся ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ запросы, Π½ΠΎ Π½Π΅ всСгда это удаСтся, особСнно ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ….

Π’ΠΈΠΏ ошибки Π‘ΠΈΠΌΠΏΡ‚ΠΎΠΌ ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ
ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΠΏΡ€Π°Π²Π° Β«Π§Ρ‚Π΅Π½ΠΈΠ΅Β» ΠŸΡƒΡΡ‚ΠΎΠΉ список Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π³Π°Π»ΠΎΡ‡ΠΊΠΈ ΠΏΡ€Π°Π² Π² Ρ€ΠΎΠ»ΠΈ
НСвСрный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π’ΠΈΠ΄Π½Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‡ΡƒΠΆΠΈΡ… ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² доступа
БлоТная функция Π² RLS Π’ΠΎΡ€ΠΌΠΎΠ·Π° ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„ΠΎΡ€ΠΌ ВынСсти Π»ΠΎΠ³ΠΈΠΊΡƒ Π² рСгистры свСдСний
ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Ρ€ΠΎΠ»Π΅ΠΉ ΠΠ΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ доступа Π£ΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ структуру ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ Π³Ρ€ΡƒΠΏΠΏ

Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ порядкС примСнСния ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. Если Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ нСсколько ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€ΠΎΠ»Π΅ΠΉ, ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ ΠΏΠΎ логичСскому ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ Π˜Π›Π˜ (для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ доступа) ΠΈΠ»ΠΈ И (Π² зависимости ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Ρ‚ΠΈΠΏΠ° ограничСния). НСпониманиС этой Π»ΠΎΠ³ΠΈΠΊΠΈ часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ доступ открываСтся Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚.

πŸ’‘

ВсСгда провСряйтС ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ тСкст запроса Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ β€” это СдинствСнный способ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ RLS влияСт Π½Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· консоль запросов

Консоль запросов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, внСшняя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ»ΠΈ встроСнная Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€) позволяСт ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΎΡ‚ интСрфСйса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст запроса ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, подставив Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π»ΠΈ запрос Π΄Π°Π½Π½Ρ‹Π΅ сам ΠΏΠΎ сСбС, Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° интСрфСйсных Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ².

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ запроса Π² консоли Π²Π°ΠΆΠ½ΠΎ ΡΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ контСкст бСзопасности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… вСрсиях консоли запросов Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ выполняСтся запрос. Π­Ρ‚ΠΎ позволяСт ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΈΡ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, со всСми ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌΠΈ ограничСниями RLS.

Если запрос Π² консоли Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ β€” Π½Π΅Ρ‚, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π² RLS, Π° Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π±ΠΎΡ€Π°Ρ… Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ Π² ΠΊΠΎΠ΄Π΅ модуля Ρ„ΠΎΡ€ΠΌΡ‹. И Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Ссли Π² консоли Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅Ρ‚ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‚Π±ΠΎΡ€Π°Ρ…, Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ RLS Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΈ отсСкаСт записи, ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ Π² Π»ΠΎΠ³ΠΈΠΊΠ΅ самого ограничСния.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Консоль запросов, запущСнная ΠΏΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ с ΠΏΠΎΠ»Π½Ρ‹ΠΌΠΈ ΠΏΡ€Π°Π²Π°ΠΌΠΈ, Π½Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ RLS. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ тСстируйтС запросы ΠΏΠΎΠ΄ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΌ доступа.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ тСстированиС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ RLS

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ограничСния доступа Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сущСствСнно Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы. Однако Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ записСй) Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ RLS ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ Β«ΡƒΠ·ΠΊΠΈΠΌ Π³ΠΎΡ€Π»Ρ‹ΡˆΠΊΠΎΠΌΒ». ПослС ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄ΠΈΡ‚Π΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠ΅ тСстированиС.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ»Π°Π½Ρ‹ выполнСния запросов Π² вашСй Π‘Π£Π‘Π” (MS SQL, PostgreSQL, Oracle), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ условия RLS. Часто Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ индСксы Π½Π° поля, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² условиях ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. НапримСр, Ссли ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Ρ‚ ΠΏΠΎ полю Β«ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡΒ», ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎ этому полю Π΅ΡΡ‚ΡŒ индСкс.

  • πŸš€ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ открытия основных Ρ„ΠΎΡ€ΠΌ списков Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² послС внСдрСния RLS.
  • πŸ›  АнализируйтС ΠΏΠ»Π°Π½Ρ‹ выполнСния запросов Π² Π‘Π£Π‘Π” для выявлСния ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ сканирования Ρ‚Π°Π±Π»ΠΈΡ†.
  • πŸ“‰ Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°ΠΉΡ‚Π΅ врСмя выполнСния запроса с RLS ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ (Π² ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅).

Если Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ ограничСния сильно тормозят систСму, рассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄Π΅Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ использования рСгистров свСдСний для хранСния ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² доступа. Иногда ΠΏΡ€ΠΎΡ‰Π΅ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΡ€Π°Π²Π°Ρ… доступа Π² самом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅, Ρ‡Π΅ΠΌ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Π΅Ρ‘ Π½Π° Π»Π΅Ρ‚Ρƒ Ρ‡Π΅Ρ€Π΅Π· слоТныС связи.

πŸ“Š Какой инструмСнт Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ RLS Ρ‡Π°Ρ‰Π΅ всСго?
ВСхнологичСский ΠΆΡƒΡ€Π½Π°Π»
ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ 1Π‘
Консоль запросов
Анализ SQL Π² Π‘Π£Π‘Π”
ΠŸΠΎΡ‡Π΅ΠΌΡƒ RLS Π½Π΅ примСняСтся ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ?

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ доступа Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ записСй ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ записи Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈΠ΄Π΅Ρ‚ Π½Π° ΠΏΡ€Π°Π²ΠΎ Β«Π—Π°ΠΏΠΈΡΡŒΒ» ΠΈΠ»ΠΈ «ИзмСнСниС» для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ†Π΅Π»ΠΎΠΌ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ созданиС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π΅, это дСлаСтся Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€Π°Π²Π° Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠ΅Ρ€Π΅Π΄ записью, Π° Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· классичСский RLS.

МоТно Π»ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ RLS Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅?

Π”Π°, Π½ΠΎ с ограничСниями. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΊ сСансу Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ссли сСрвСр ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ настроСн ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. Однако просмотр тСкста запроса ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ΅Π½Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ, Ρ‡Π΅ΠΌ Π² толстом ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅. РСкомСндуСтся Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π² Ρ‚ΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ для удобства ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

ВлияСт Π»ΠΈ RLS Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ обновлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ?

НСт, ограничСния доступа Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ записСй Π²Π»ΠΈΡΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запросов ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдприятия. ΠŸΡ€ΠΎΡ†Π΅ΡΡ обновлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ RLS, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ выполняСтся Π² ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли послС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ RLS ΠΏΡ€ΠΎΠΏΠ°Π»ΠΈ всС Π΄Π°Π½Π½Ρ‹Π΅?

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, условиС ограничСния Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π›ΠžΠ–Π¬ для всСх записСй Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ контСкстС. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ доступа: Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ привязан Π½ΠΈ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π² условии RLS. Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ для диагностики.