ΠΠ°Π·Π²Π°ΠΌ ΡΠ΅ ΠΠ΅Π½ΠΈΡ Π ΠΎΠΆΠΊΠΎΠ², Π°Π· ΡΡΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π» Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠΎΡΡΡΠ΅Ρ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Gazinformservice, Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΈΡ Π΅ΠΊΠΈΠΏ
Π‘ΡΠ°ΡΠΈΡΡΠ° Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½Π° Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ΅Ρ Π½Π°
Π‘ΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΠΈΠΌΠ° ΡΡΠΈ ΡΠ°ΡΡΠΈ:
- ΠΠ°ΠΊ Π΄Π° Π·Π°ΡΠΈΡΠΈΠΌ Π²ΡΡΠ·ΠΊΠΈΡΠ΅.
- ΠΠ°ΠΊΠ²ΠΎ Π΅ ΠΎΠ΄ΠΈΡ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡΠ° ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π·Π°ΠΏΠΈΡΠ²Π°ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΈ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Ρ Π½Π΅Ρ.
- ΠΠ°ΠΊ Π΄Π° Π·Π°ΡΠΈΡΠΈΠΌ Π΄Π°Π½Π½ΠΈΡΠ΅ Π² ΡΠ°ΠΌΠ°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΠΌΠ° Π·Π° ΡΠΎΠ²Π°.
Π’ΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° Π‘Π£ΠΠ: Π·Π°ΡΠΈΡΠ° Π½Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ°, ΠΎΠ΄ΠΈΡ Π½Π° Π΄Π΅ΠΉΠ½ΠΎΡΡΡΠ° ΠΈ Π·Π°ΡΠΈΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅
ΠΠ°ΡΠΈΡΠ° Π½Π° Π²Π°ΡΠΈΡΠ΅ Π²ΡΡΠ·ΠΊΠΈ
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ Ρ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΡΠ΅Π· ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ, Ρ.Π΅. Π»ΠΈΡΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ ΡΡΡ Π‘Π£ΠΠ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π° Ρ Π½Π΅Π³ΠΎ ΠΈΠ½Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ.
ΠΡΠ΅Π΄ΠΈ Π΄Π° Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅ Π·Π° Π·Π°ΡΠΈΡΠ° Π½Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅, ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ Π½Π° Π²Π°ΠΆΠ½ΠΈ Π²ΡΠΏΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΊΠ°ΠΊ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ ΠΌΠ΅ΡΠΊΠΈΡΠ΅ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ:
- ΠΠ΄ΠΈΠ½ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ Π»ΠΈ Π΅ Π½Π° Π΅Π΄ΠΈΠ½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π½Π° Π‘Π£ΠΠ?
- Π΄Π°Π»ΠΈ Π΄ΠΎΡΡΡΠΏΡΡ Π΄ΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΎΡ Π‘Π£ΠΠ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ°ΠΌΠΎ ΡΡΠ΅Π· API, ΠΊΠΎΠΉΡΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°ΡΠ΅, ΠΈΠ»ΠΈ Π΄Π°Π»ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ²Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ;
- Π΄Π°Π»ΠΈ Π‘Π£ΠΠ Π΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ Π·Π°ΡΠΈΡΠ΅Π½ ΡΠ΅Π³ΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π° Ρ Π½Π΅Ρ ΠΈ ΠΊΠ°ΠΊ;
- Π΄Π°Π»ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΡΠ»ΠΈΠ½Π³/ΠΏΡΠΎΠΊΡΠΈ ΠΈ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ ΡΠ»ΠΎΠ΅Π²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ° ΠΈ ΠΊΠΎΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ.
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° Π·Π°ΡΠΈΡΠ° Π½Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅:
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΠΎΠ²Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° Π·Π°ΡΠΈΡΠ½Π° ΡΡΠ΅Π½Π° Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ ΡΠ»ΠΎΠΉ Π½Π° Π·Π°ΡΠΈΡΠ° ΠΊΠ°ΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΠ»ΡΡΠ²Π°ΡΠΎΡΠΎ ΡΠ΅ Π² Π‘Π£ΠΠ ΠΈ ΠΊΠ°ΡΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° Π·Π°ΡΠΈΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅.
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π·Π° ΠΏΠ°ΡΠΎΠ»ΠΈ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ ΠΈΠΌ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΡΠΎΠ²Π° ΠΊΠ°ΠΊ Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° Π²Π°ΡΠ°ΡΠ° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°. ΠΡΠ² Π²ΡΠ΅ΠΊΠΈ ΡΠ»ΡΡΠ°ΠΉ Π΅Π΄Π½Π° ΠΏΠ°ΡΠΎΠ»Π° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ» Π½Π° ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° ΠΊΡΠΌ Π‘Π£ΠΠ, Π½Π΅ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½Π° Π·Π° Π·Π°ΡΠΈΡΠ°. ΠΠΌΠ° ΡΠ΅Π΄ΠΈΡΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π‘Π£ΠΠ, ΠΊΠΎΠΈΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°ΡΠ΅ Π΄Π°Π»ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΠΈ ΠΏΠ°ΡΠΎΠ»Π°ΡΠ° ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π·Π° ΠΎΡΠ΅Π½ΠΊΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅
ΡΡΠΊ , ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ Π·Π° MS SQL Vulnerability AssessmenΡΡΠΊ . - ΠΠ±ΠΎΠ³Π°ΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠ΅ΡΠΈΡΡΠ° Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠΊΠΎ ΡΠ΅ΡΠΈΡΡΠ° Π΅ Π½Π΅ΠΏΡΠΎΠ·ΡΠ°ΡΠ½Π°, Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈ Π² Π‘Π£ΠΠ Π² Π½Π΅ΠΉΠ½Π°ΡΠ° ΡΠ°ΠΌΠΊΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½Π°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠΎΠ²Π° ΠΊΠΎΠΉ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΈ Π·Π°ΡΠΎ. Π’Π°Π·ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ Π² ΠΎΠ΄ΠΈΡΠ°.
- ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΉΡΠ΅ SSL, Π°ΠΊΠΎ Π½ΡΠΌΠ°ΡΠ΅ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π‘Π£ΠΠ ΠΈ ΠΊΡΠ°ΠΉΠ½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ; Π½Π΅ Π΅ Π² ΠΎΡΠ΄Π΅Π»Π½Π° VLAN. Π ΡΠ°ΠΊΠΈΠ²Π° ΡΠ»ΡΡΠ°ΠΈ Π΅ Π½Π°Π»ΠΎΠΆΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° ΡΠ΅ Π·Π°ΡΠΈΡΠΈ ΠΊΠ°Π½Π°Π»ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΈ ΡΠ°ΠΌΠ°ΡΠ° Π‘Π£ΠΠ. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΡΡΡΠΎ ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ Π² ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄.
ΠΠ°ΠΊ ΡΠΎΠ²Π° ΡΠ΅ ΠΏΠΎΠ²Π»ΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π‘Π£ΠΠ?
ΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½Π° PostgreSQL, Π·Π° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ SSL Π²Π»ΠΈΡΠ΅ Π²ΡΡΡ Ρ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°, ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° Π²ΡΠ΅ΠΌΠ΅Π½Π°ΡΠ° ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π° TPS ΠΈ Π΄Π°Π»ΠΈ ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° ΡΠ²ΡΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠΈ, Π°ΠΊΠΎ Π³ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅.
ΠΠ°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° PostgreSQL Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° pgbench Π΅ ΠΏΡΠΎΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π·Π° ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ. Π’ΠΎΠΉ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π΅Π΄Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π² ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΡΠ΅ΡΠΈΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° ΡΡΠ΅Π΄Π½Π°ΡΠ° ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ.
Π’Π΅ΡΡ 1 Π±Π΅Π· SSL ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° SSL β Π²ΡΡΠ·ΠΊΠ°ΡΠ° ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π° Π·Π° Π²ΡΡΠΊΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ:
pgbench.exe --connect -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres sslmode=require
sslrootcert=rootCA.crt sslcert=client.crt sslkey=client.key"
vs
pgbench.exe --connect -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres"
Π’Π΅ΡΡ 2 Π±Π΅Π· SSL ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° SSL β Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ Π² Π΅Π΄Π½Π° Π²ΡΡΠ·ΠΊΠ°:
pgbench.exe -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres sslmode=require
sslrootcert=rootCA.crt sslcert=client.crt sslkey=client.key"
vs
pgbench.exe -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres"
ΠΡΡΠ³ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ:
scaling factor: 1
query mode: simple
number of clients: 10
number of threads: 1
number of transactions per client: 5000
number of transactions actually processed: 50000/50000
Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΡ ΡΠ΅ΡΡΠ°:
ΠΠΠ SSL
SSL
ΠΠ° Π²ΡΡΠΊΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π° Π²ΡΡΠ·ΠΊΠ°
ΡΡΠ΅Π΄Π½Π° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ
171.915 ΠΌΡ
187.695 ΠΌΡ
tps Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠΈ
58.168112
53.278062
tps Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΡΠ·ΠΊΠΈ
64.084546
58.725846
ΠΏΡΠΎΡΠ΅ΡΠΎΡ
24%
28%
ΠΡΠΈΡΠΊΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ Π² Π΅Π΄Π½Π° Π²ΡΡΠ·ΠΊΠ°
ΡΡΠ΅Π΄Π½Π° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ
6.722 ΠΌΡ
6.342 ΠΌΡ
tps Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠΈ
1587.657278
1576.792883
tps Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΡΠ·ΠΊΠΈ
1588.380574
1577.694766
ΠΏΡΠΎΡΠ΅ΡΠΎΡ
17%
21%
ΠΡΠΈ Π»Π΅ΠΊΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ Π²Π»ΠΈΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° SSL Π΅ ΡΡΠ°Π²Π½ΠΈΠΌΠΎ Ρ Π³ΡΠ΅ΡΠΊΠ°ΡΠ° Π½Π° ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½Π΅. ΠΠΊΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ ΠΏΡΠ΅Ρ Π²ΡΡΠ»Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»ΡΠΌΠΎ, ΡΠΈΡΡΠ°ΡΠΈΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΡΠ°Π·Π»ΠΈΡΠ½Π°. ΠΠΊΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π΅Π΄Π½Π° Π²ΡΡΠ·ΠΊΠ° Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ (ΡΠΎΠ²Π° Π΅ ΡΡΠ΄ΠΊΠΎ, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π²ΡΡΠ·ΠΊΠ°ΡΠ° ΡΠ΅ ΡΠΏΠΎΠ΄Π΅Π»Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ), ΠΈΠΌΠ°ΡΠ΅ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ Π²ΡΡΠ·ΠΊΠΈ/ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½ΠΈΡ, Π²ΡΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠΎ. Π’ΠΎΠ΅ΡΡ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΡΠΈΡΠΊΠΎΠ²Π΅ ΠΎΡ Π½Π°ΠΌΠ°Π»Π΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, Π½ΠΎ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π³ΠΎΠ»ΡΠΌΠ°, ΡΠ΅ Π΄Π° Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π°ΡΠΈΡΠ°.
ΠΠΎΠ»Ρ, ΠΈΠΌΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ ΠΈΠΌΠ° Π³ΠΎΠ»ΡΠΌΠ° ΡΠ°Π·Π»ΠΈΠΊΠ°, Π°ΠΊΠΎ ΡΡΠ°Π²Π½ΡΠ²Π°ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΠΈΡΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°: ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Π² Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° ΡΠ΅ΡΠΈΡ ΠΈΠ»ΠΈ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ. Π’ΠΎΠ²Π° Π΅ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΠΎ: ΡΠ΅ΡΡΡΡΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π°Ρ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π²ΡΡΠΊΠ° Π²ΡΡΠ·ΠΊΠ°.
ΠΠΌΠ°Ρ ΠΌΠ΅ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ²ΡΡΠ·Π°Ρ ΠΌΠ΅ Zabbix Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° Π΄ΠΎΠ²Π΅ΡΠΈΠ΅, ΡΠΎΠ΅ΡΡ md5 Π½Π΅ Π±Π΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½, Π½ΡΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅. Π’ΠΎΠ³Π°Π²Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ° ΡΠ΅ΠΆΠΈΠΌΠ° Π·Π° ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ Π½Π° md5. Π’ΠΎΠ²Π° Π½Π°ΡΠΎΠ²Π°ΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΏΠ°Π΄Π½Π°. ΠΠ°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° ΡΡΡΡΠΈΠΌ Π½Π°ΡΠΈΠ½ΠΈ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅. ΠΠ΄Π½ΠΎ ΠΎΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ°Ρ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΡΡ ΠΎΡΠ΄Π΅Π»Π½ΠΈ VLAN Π·Π° Π‘Π£ΠΠ, Π΄Π° ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, Π·Π° Π΄Π° ΡΡΠ°Π½Π΅ ΡΡΠ½ΠΎ ΠΊΠΎΠΉ ΠΎΡΠΊΡΠ΄Π΅ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° ΠΈ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π΅ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ΡΠΎ.ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π·Π° ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅, Π·Π° Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΡΠ΅ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ΡΠΎ, Π½ΠΎ ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ Π²Π»ΠΈΡΠ΅ Π²ΡΡΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠ΅Π·ΠΈ ΡΠ°ΠΊΡΠΎΡΠΈ Π΄Π° ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅Π»Π½Π°ΡΠ° ΠΌΠΎΡΠ½ΠΎΡΡ Π½Π° ΡΡΡΠ²ΡΡΠΈΡΠ΅ (Ρ Π°ΡΠ΄ΡΠ΅ΡΠ°) Π·Π° Π‘Π£ΠΠ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅: Π² ΡΠ΅Π΄ΠΈΡΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΠΈ ΠΌΠ°Π»ΠΊΠΈ Π½ΡΠ°Π½ΡΠΈ Π² ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΌΠΎΠ³Π°Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π΅ Π»ΠΎΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠΎΠ²Π° ΡΡΠ°Π½Π΅ ΡΡΠ½ΠΎ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ Π²Π½Π΅Π΄ΡΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ.
ΠΠ΄ΠΈΡ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅
ΠΠ΄ΠΈΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π½Π΅ ΡΠ°ΠΌΠΎ Π‘Π£ΠΠ. ΠΠ΄ΠΈΡΡΡ Π΅ Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈ. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ»ΠΈ Π·Π°ΡΠΈΡΠ½Π° ΡΡΠ΅Π½Π° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, Π²ΡΡΡ Ρ ΠΊΠΎΡΡΠΎ Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° Π‘Π£ΠΠ.
Π ΠΊΠΎΠΌΠ΅ΡΡΠΈΠ°Π»Π½ΠΈΡΠ΅ Π‘Π£ΠΠ Π½Π° ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎ Π½ΠΈΠ²ΠΎ Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΡΠ΅Π΄ Ρ ΠΎΠ΄ΠΈΡΠ°, Π½ΠΎ Π² ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ - Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ. ΠΡΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ° PostgreSQL:
- Π΄Π½Π΅Π²Π½ΠΈΠΊ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ - Π²Π³ΡΠ°Π΄Π΅Π½ΠΎ Π»ΠΎΠ³Π²Π°Π½Π΅;
- ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ: pgaudit - Π°ΠΊΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ΡΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π΅ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π·Π° Π²Π°Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ΡΠ°Π²Π°Ρ Π½ΡΠΊΠΎΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
ΠΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΠ΅ΠΏΠΎΡΡΠ°ΠΆΠ° Π²ΡΠ² Π²ΠΈΠ΄Π΅ΠΎΡΠΎ:
βΠ Π΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΎΡΡΠ΅ΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΎ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Ρ log_statement = all.
Π’ΠΎΠ²Π° Π΅ ΠΏΡΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈ ΡΠΏΠΎΡΡΠ΅Π±ΠΈ, Π½ΠΎ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° Π΄Π΅ΡΠ°ΠΉΠ»Π½ΠΎΡΡ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π·Π° ΠΎΠ΄ΠΈΡ.
ΠΠ΅ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΡΠΏΠΈΡΡΠΊ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΈΠ·Π²ΡΡΡΠ΅Π½ΠΈ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ.
Π’ΡΡΠ±Π²Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΡΠ²ΡΡΠ΄Π΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ Π·Π° ΠΎΠ΄ΠΈΡΠΎΡΠ°.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΡΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΠΏΠΎΠΈΡΠΊΠ°Π» ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ, Π΄ΠΎΠΊΠ°ΡΠΎ pgAudit ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ° Π²ΡΡΡ Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈΡΠ΅ Π·Π° ΡΠ»ΡΡΠΈΠ»ΠΎΡΠΎ ΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠ»Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ΄ΠΈΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΈΡΠΊΠ° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈ Π΄Π°Π»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½Π° Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠ°Π½ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°.
Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ ΠΏΡΠΎΡΡΠ° Π·Π°Π΄Π°ΡΠ° Ρ ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΠΎΠ΄ΠΈΡ ΠΈ grep, Π½ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΡΠ°Π½Π΅, Π°ΠΊΠΎ Π²ΠΈ Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ ΡΠΎΠ·ΠΈ (ΡΠΌΠΈΡΠ»Π΅Π½ΠΎ ΠΎΠ±ΡΡΠΊΠ²Π°Ρ) ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΠΠ ΠΠΠΠ’Π $$
ΠΠΠΠΠ§ΠΠΠ’Π
ΠΠΠΠͺΠΠΠΠ’Π 'CREATE TABLE import' || 'ant_table(id int)';
ΠΠ ΠΠ$$;
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΡΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ ΡΠ΅ Π²ΠΈ Π΄Π°Π΄Π΅ ΡΠΎΠ²Π°:
LOG: ΠΈΠ·ΡΠ°Π·: DO $$
ΠΠΠΠΠ§ΠΠΠ’Π
ΠΠΠΠͺΠΠΠΠ’Π 'CREATE TABLE import' || 'ant_table(id int)';
ΠΠ ΠΠ$$;
ΠΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΠΈΠ½ΡΠ΅ΡΠ΅Ρ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π² ΡΠ»ΡΡΠ°ΠΈΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ.
Π’ΠΎΠ²Π° Π½Π΅ Π΅ ΠΈΠ΄Π΅Π°Π»Π½ΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π·Π° ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π΄Π° ΡΡΡΡΠΈΡΠ΅ ΠΏΠΎ ΠΈΠΌΠ΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°.
Π’ΠΎΠ²Π° Π΅ ΠΌΡΡΡΠΎΡΠΎ, ΠΊΡΠ΄Π΅ΡΠΎ pgAudit ΠΈΠ΄Π²Π° Π½Π° ΠΏΠΎΠΌΠΎΡ.
ΠΠ° ΡΡΡΠΈΡ Π²Ρ ΠΎΠ΄ ΡΠΎΠΉ ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅ ΡΠΎΠ·ΠΈ ΠΈΠ·Ρ ΠΎΠ΄ Π² Π΄Π½Π΅Π²Π½ΠΈΠΊΠ°:
ΠΠΠΠ’: SESSION,33,1,FUNCTION,DO,,,"DO $$
ΠΠΠΠΠ§ΠΠΠ’Π
ΠΠΠΠͺΠΠΠΠ’Π 'CREATE TABLE import' || 'ant_table(id int)';
ΠΠ ΠΠ$$;"
ΠΠΠΠ’: SESSION,33,2,DDL,CREATE TABLE,TABLE,public.important_table,CREATE TABLE important_table (id INT)
ΠΠ°ΠΏΠΈΡΠ²Π° ΡΠ΅ Π½Π΅ ΡΠ°ΠΌΠΎ Π±Π»ΠΎΠΊΡΡ DO, Π½ΠΎ ΠΈ ΠΏΡΠ»Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡ Π½Π° CREATE TABLE Ρ ΡΠΈΠΏ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΡΠΈΠΏ ΠΎΠ±Π΅ΠΊΡ ΠΈ ΠΏΡΠ»Π½ΠΎ ΠΈΠΌΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈ ΡΡΡΡΠ΅Π½Π΅ΡΠΎ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ.
ΠΠΎΠ³Π°ΡΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ° SELECT ΠΈ DML ΠΈΠ·ΡΠ°Π·ΠΈ, pgAudit ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ Π΄Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ° ΠΎΡΠ΄Π΅Π»Π΅Π½ Π·Π°ΠΏΠΈΡ Π·Π° Π²ΡΡΠΊΠ° Π²ΡΡΠ·ΠΊΠ°, ΠΏΠΎΡΠΎΡΠ΅Π½Π° Π² ΠΈΠ·ΡΠ°Π·Π°.
ΠΠ΅ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅Π½ Π°Π½Π°Π»ΠΈΠ·, Π·Π° ββΠ΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΡΡ Π²ΡΠΈΡΠΊΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ Π·Π°ΡΡΠ³Π°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°(
ΠΠ°ΠΊ ΡΠΎΠ²Π° ΡΠ΅ ΠΏΠΎΠ²Π»ΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π‘Π£ΠΠ?
ΠΠ΅ΠΊΠ° Π΄Π° ΠΏΡΠΎΠ²Π΅Π΄Π΅ΠΌ ΡΠ΅ΡΡΠΎΠ²Π΅ Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ ΠΏΡΠ»Π΅Π½ ΠΎΠ΄ΠΈΡ ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° PostgreSQL. ΠΠ΅ΠΊΠ° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΌΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ.
ΠΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ ΠΏΠΎΡΡΠΈ Π½ΠΈΡΠΎ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ», Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡΠΎ Π΅ Π΄Π° Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ° debug5, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
postgresql.conf
log_destination = 'stderr'
logging_collector = Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ
log_truncate_on_rotation = Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ
log_rotation_age = 1Π³
log_rotation_size = 10MB
log_min_messages = ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ5
log_min_error_statement = ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ5
log_min_duration_statement = 0
debug_print_parse = Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ
debug_print_rewritten = Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ
debug_print_plan = Π²ΠΊΠ»ΡΡΠ΅Π½
debug_pretty_print = Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ
log_checkpoints = Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ
log_connections = Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ
log_disconnections = Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ
log_duration = Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ
log_hostname = Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ
log_lock_wait = Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ
log_replication_commands = Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ
log_temp_files = 0
log_timezone = 'ΠΠ²ΡΠΎΠΏΠ°/ΠΠΎΡΠΊΠ²Π°'
ΠΠ° Π‘Π£ΠΠ PostgreSQL Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ 1 CPU, 2,8 GHz, 2 GB RAM, 40 GB HDD, ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΡΡΠΈ ΡΠ΅ΡΡΠ° Π·Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅:
$ pgbench -p 3389 -U postgres -i -s 150 benchmark
$ pgbench -p 3389 -U postgres -c 50 -j 2 -P 60 -T 600 benchmark
$ pgbench -p 3389 -U postgres -c 150 -j 2 -P 60 -T 600 benchmark
Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΡ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅:
ΠΠ΅Π· ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅
Π‘ Π΄ΡΡΠ²ΠΎΠ΄ΠΎΠ±ΠΈΠ²
ΠΠ±ΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΏΠΎΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ
43,74 ΡΠ΅ΠΊ
53,23 ΡΠ΅ΠΊ
RAM
24%
40%
ΠΏΡΠΎΡΠ΅ΡΠΎΡ
72%
91%
Π’Π΅ΡΡ 1 (50 Π²ΡΡΠ·ΠΊΠΈ)
ΠΡΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π·Π° 10 ΠΌΠΈΠ½ΡΡΠΈ
74169
32445
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ/ΡΠ΅ΠΊ
123
54
Π‘ΡΠ΅Π΄Π½Π° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ
405 ms
925 ms
Π’Π΅ΡΡ 2 (150 Π²ΡΡΠ·ΠΊΠΈ ΡΡΡ 100 Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ)
ΠΡΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π·Π° 10 ΠΌΠΈΠ½ΡΡΠΈ
81727
31429
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ/ΡΠ΅ΠΊ
136
52
Π‘ΡΠ΅Π΄Π½Π° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ
550 ms
1432 ms
ΠΡΠ½ΠΎΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΈΡΠ΅
Π Π°Π·ΠΌΠ΅Ρ Π½Π° DB
2251 MB
2262 MB
Π Π°Π·ΠΌΠ΅Ρ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ» Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ
0 MB
4587 MB
Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ°: ΠΏΡΠ»Π΅Π½ ΠΎΠ΄ΠΈΡ Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΡ. ΠΠ°Π½Π½ΠΈΡΠ΅ ΠΎΡ ΠΎΠ΄ΠΈΡΠ° ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π³ΠΎΠ»Π΅ΠΌΠΈ, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ Π² ΡΠ°ΠΌΠ°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π‘Π£ΠΠ, Π΅ ΡΠ΅ΡΡΠΎ ΡΡΠ΅ΡΠ°Π½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ.
ΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΄ΡΡΠ³ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ:
- Π‘ΠΊΠΎΡΠΎΡΡΡΠ° Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ: Π±Π΅Π· ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ - 43,74 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Ρ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ - 53,23 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ.
- ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° RAM ΠΈ CPU ΡΠ΅ ΠΏΠΎΡΡΡΠ°Π΄Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ ΡΠ°ΠΉΠ» Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°. Π’ΠΎΠ²Π° ΡΠ΅ Π·Π°Π±Π΅Π»ΡΠ·Π²Π° ΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π±ΡΠΎΡΡ Π½Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅ ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π»Π΅ΠΊΠΎ ΡΠ΅ ΡΠ΅ Π²Π»ΠΎΡΠΈ.
Π ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠΈΡΠ΅ Ρ ΠΎΠ΄ΠΈΡ Π΅ ΠΎΡΠ΅ ΠΏΠΎ-ΡΡΡΠ΄Π½ΠΎ:
- ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π½Π½ΠΈ;
- ΠΎΠ΄ΠΈΡΡΡ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π½Π΅ ΡΠ°ΠΌΠΎ ΡΡΠ΅Π· syslog Π² SIEM, Π½ΠΎ ΠΈ Π²ΡΠ² ΡΠ°ΠΉΠ»ΠΎΠ²Π΅: Π°ΠΊΠΎ Π½Π΅ΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠΈ Ρ syslog, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° ΡΠ°ΠΉΠ» Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ Π΄Π°Π½Π½ΠΈΡΠ΅;
- Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π΅ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠ°ΡΡ Π·Π° ΠΎΠ΄ΠΈΡ, Π·Π° Π΄Π° Π½Π΅ ΡΠ΅ Ρ Π°Π±ΡΡ I/O Π΄ΠΈΡΠΊΠΎΠ²Π΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π·Π°Π΅ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΡΡΡΠΎ;
- Π‘Π»ΡΡΠ²Π° ΡΠ΅ ΡΠ»ΡΠΆΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΏΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π΄Π° ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΈ GOST Π½Π°Π²ΡΡΠΊΡΠ΄Π΅, ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π΄ΡΡΠΆΠ°Π²Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ.
ΠΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ Π΄Π°Π½Π½ΠΈ
ΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° Π·Π°ΡΠΈΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΡ Π² ΠΊΠΎΠΌΠ΅ΡΡΠΈΠ°Π»Π½ΠΈ Π‘Π£ΠΠ ΠΈ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄.
ΠΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ:
- ΠΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΡ Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ (Wrapping) - Ρ.Π΅. ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΈ ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ°Π²ΡΡ ΡΠ΅ΡΠ»ΠΈΠ²ΠΈΡ ΠΊΠΎΠ΄ Π½Π΅ΡΠ΅ΡΠΈΠΌ. ΠΡΡΠ½ΠΎ Π΅, ΡΠ΅ ΡΠΎΠ³Π°Π²Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π½ΠΈΡΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, Π½ΠΈΡΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΠΎΠ½Π΅ ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° Π‘Π£ΠΠ - Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΠΎΡΠΎΡΠΈΠ·Π°ΡΠΈΡΡΠ° Π΅ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π° ΡΠΎΡΠ½ΠΎ Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΈ ΡΡΠ½ΠΊΡΠΈΡ.
- ΠΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΏΠΎ ΡΠ΅Π΄ΠΎΠ²Π΅ (RLS) Π΅, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π²ΠΈΠΆΠ΄Π°Ρ Π΅Π΄Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°, Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΡΡΡΡΠ°Π² ΠΎΡ ΡΠ΅Π΄ΠΎΠ²Π΅ Π² Π½Π΅Ρ, ΡΠΎΠ΅ΡΡ Π½Π΅ΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ Π½Π° Π½ΡΠΊΠΎΠ³ΠΎ Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ΅Π΄.
- Π Π΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ (ΠΠ°ΡΠΊΠΈΡΠ°Π½Π΅) Π΅ ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π² Π΅Π΄Π½Π° ΠΊΠΎΠ»ΠΎΠ½Π° Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Π²ΠΈΠΆΠ΄Π°Ρ ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΎ Π·Π²Π΅Π·Π΄ΠΈΡΠΊΠΈ, Ρ.Π΅. Π·Π° Π½ΡΠΊΠΎΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ Π·Π°ΡΠ²ΠΎΡΠ΅Π½Π°. Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π½Π° ΠΊΠΎΠΉ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π° Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° Π΄ΠΎΡΡΡΠΏ.
- Π‘ΠΈΠ³ΡΡΠ½ΠΎΡΡ DBA/Application DBA/DBA ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΅ ΠΏΠΎ-ΡΠΊΠΎΡΠΎ Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΡΠ°ΠΌΠ°ΡΠ° Π‘Π£ΠΠ, ΡΠΎΠ΅ΡΡ ΡΠ»ΡΠΆΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΏΠΎ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈ ΠΎΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈΡΠ΅ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΌΠ° ΠΌΠ°Π»ΠΊΠΎ ΡΠ°ΠΊΠΈΠ²Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π² ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄, Π½ΠΎ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ ΡΡΡ Π² ΠΊΠΎΠΌΠ΅ΡΡΠΈΠ°Π»Π½ΠΈΡΠ΅ Π‘Π£ΠΠ. Π’Π΅ ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ°ΠΌΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠΈ.
- ΠΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠ°Π²Π° ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Π΄Π° ΠΈΠΌΠ° Π΄ΠΎΡΡΡΠΏ ΡΠ°ΠΌΠΎ Π΄ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ.
- ΠΠ°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π΅Π½ Π΄ΠΎΡΡΡΠΏ ΠΈ ΠΈΠ·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° - ΡΠ΅Π·ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΠ΄ΠΊΠΎ.
- ΠΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ΡΠΎ ΠΎΡ ΠΊΡΠ°ΠΉ Π΄ΠΎ ΠΊΡΠ°ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡ Π‘Π£ΠΠ Π΅ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π΅ ΠΎΡ ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠ°.
- ΠΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ»ΠΎΠ½Π½ΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π΅, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ, ΠΊΠΎΠΉΡΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ° Π΅Π΄Π½Π° ΠΊΠΎΠ»ΠΎΠ½Π° ΠΎΡ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ.
ΠΠ°ΠΊ ΡΠΎΠ²Π° ΡΠ΅ ΠΎΡΡΠ°Π·ΡΠ²Π° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π‘Π£ΠΠ?
ΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½Π° ΠΊΠΎΠ»ΠΎΠ½Π½ΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π² PostgreSQL. ΠΠΌΠ° ΠΌΠΎΠ΄ΡΠ» pgcrypto, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΡΠ΅ ΠΈΠ·Π±ΡΠ°Π½ΠΈ ΠΏΠΎΠ»Π΅ΡΠ° Π² ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π° ΡΠΎΡΠΌΠ°. Π’ΠΎΠ²Π° Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°ΠΌΠΎ Π½ΡΠΊΠΎΠΈ Π΄Π°Π½Π½ΠΈ ΡΠ° ΡΠ΅Π½Π½ΠΈ. ΠΠ° Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΠΎΠ»Π΅ΡΠ°, ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ ΠΏΡΠ΅Π΄Π°Π²Π° ΠΊΠ»ΡΡ Π·Π° Π΄Π΅ΡΠΈΡΡΠΈΡΠ°Π½Π΅, ΡΡΡΠ²ΡΡΡΡ Π΄Π΅ΡΠΈΡΡΠΈΡΠ° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΈ Π³ΠΈ Π²ΡΡΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΠ΅Π· ΠΊΠ»ΡΡΠ° Π½ΠΈΠΊΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ Π½ΠΈΡΠΎ Ρ Π²Π°ΡΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ.
ΠΠ΅ΠΊΠ° ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ Ρ pgcrypto. ΠΠ΅ΠΊΠ° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΡΠ°Π±Π»ΠΈΡΠ° Ρ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠΎ-Π΄ΠΎΠ»Ρ ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈ, Π² ΠΏΡΡΠ²ΠΈΡ ΡΠ΅Π΄ ΠΈΠΌΠ° ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° - ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ°ΠΌΠΎΡΠΎ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π² Π‘Π£ΠΠ:
CREATE EXTENSION pgcrypto;
CREATE TABLE t1 (id integer, text1 text, text2 text);
CREATE TABLE t2 (id integer, text1 bytea, text2 bytea);
INSERT INTO t1 (id, text1, text2)
VALUES (generate_series(1,10000000), generate_series(1,10000000)::text, generate_series(1,10000000)::text);
INSERT INTO t2 (id, text1, text2) VALUES (
generate_series(1,10000000),
encrypt(cast(generate_series(1,10000000) AS text)::bytea, 'key'::bytea, 'bf'),
encrypt(cast(generate_series(1,10000000) AS text)::bytea, 'key'::bytea, 'bf'));
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π½Π΅ΠΊΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΈΠ·Π²Π°Π΄ΠΊΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²ΡΡΠΊΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΠΈ Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅.
ΠΠ·Π±ΠΎΡ ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ° Π±Π΅Π· ΡΡΠ½ΠΊΡΠΈΡ Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅:
psql -c "timing" -c "select * from t1 limit 1000;" "host=192.168.220.129 dbname=taskdb
user=postgres sslmode=disable" > 1.txt
Π₯ΡΠΎΠ½ΠΎΠΌΠ΅ΡΡΡΡΡ Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½.
ID | ΡΠ΅ΠΊΡΡ1 | ΡΠ΅ΠΊΡΡ2
ββ+ββ-+ββ-
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
...
997 | 997 | 997
998 | 998 | 998
999 | 999 | 999
1000 | 1000 | 1000
(1000 ΡΠ΅Π΄Π°)
ΠΡΠ΅ΠΌΠ΅: 1,386 ms
ΠΠ·Π±ΠΎΡ ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ° Ρ ΡΡΠ½ΠΊΡΠΈΡ Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅:
psql -c "timing" -c "select id, decrypt(text1, 'key'::bytea, 'bf'),
decrypt(text2, 'key'::bytea, 'bf') from t2 limit 1000;"
"host=192.168.220.129 dbname=taskdb user=postgres sslmode=disable" > 2.txt
Π₯ΡΠΎΠ½ΠΎΠΌΠ΅ΡΡΡΡΡ Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½.
ID | Π΄Π΅ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ | Π΄Π΅ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅
ββ+βββββ+ββββ
1 | x31 | x31
2 | x32 | x32
3 | x33 | x33
...
999 | x393939 | x393939
1000 | x31303030 | x31303030
(1000 ΡΠ΅Π΄Π°)
ΠΡΠ΅ΠΌΠ΅: 50,203 ms
Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΡ ΡΠ΅ΡΡΠ°:
ΠΠ΅Π· ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅
Pgcrypto (Π΄Π΅ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅)
ΠΡΠΈΠΌΠ΅ΡΠ½ΠΈ 1000 ΡΠ΅Π΄Π°
1,386 ms
50,203 ms
ΠΏΡΠΎΡΠ΅ΡΠΎΡ
15%
35%
RAM
+ 5%
Π¨ΠΈΡΡΠΎΠ²Π°Π½Π΅ΡΠΎ ΠΈΠΌΠ° Π³ΠΎΠ»ΡΠΌΠΎ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π²ΡΡΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ, ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠ΅ Π΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ»ΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ ΠΏΠΎ Π΄Π΅ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ (Π° Π΄Π΅ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π΅ ΠΎΠ±Π²ΠΈΡΠΎ Π²ΡΠ² Π²Π°ΡΠ°ΡΠ° Π»ΠΎΠ³ΠΈΠΊΠ°) ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ. Π’ΠΎΠ΅ΡΡ ΠΈΠ΄Π΅ΡΡΠ° Π·Π° ΡΠΈΡΡΠΎΠ²Π°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ Π½ΡΠΊΠΎΠΈ Π΄Π°Π½Π½ΠΈ, Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½Π° Ρ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.
Π¨ΠΈΡΡΠΎΠ²Π°Π½Π΅ΡΠΎ ΠΎΠ±Π°ΡΠ΅ Π½Π΅ Π΅ ΡΡΠ΅Π±ΡΡΠ΅Π½ ΠΊΡΡΡΡΠΌ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ΡΠ°Π²Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. ΠΠ΅ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠ»ΡΡΡΡ Π·Π° Π΄Π΅ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° Π΄Π΅ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π½Π° ΡΡΡΠ²ΡΡΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΊΠ»ΡΡΠΎΠ²Π΅ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠΈΡ Π²Π°Π½Π°ΡΠΈ ΠΎΡ Π½ΡΠΊΠΎΠΉ, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° ΠΏΡΠ»Π΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΡΠ²ΡΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ.
ΠΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ° Π΅Π΄ΠΈΠ½ ΠΊΠ»ΡΡ Π·Π° ΡΡΠ»Π°ΡΠ° ΠΊΠΎΠ»ΠΎΠ½Π° Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ (Π΄ΠΎΡΠΈ ΠΈ Π½Π΅ Π·Π° Π²ΡΠΈΡΠΊΠΈ, Π° Π·Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ ΠΎΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π½Π°Π±ΠΎΡ), ΡΠΎΠ²Π° Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π΄ΠΎΠ±ΡΠΎ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ. ΠΡΠΎ Π·Π°ΡΠΎ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π°Ρ Π° Π΄Π° ΠΏΡΠ°Π²ΡΡ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΠΎΡ ΠΊΡΠ°ΠΉ Π΄ΠΎ ΠΊΡΠ°ΠΉ, Π² Π‘Π£ΠΠ Π·Π°ΠΏΠΎΡΠ½Π°Ρ Π° Π΄Π° ΠΎΠ±ΠΌΠΈΡΠ»ΡΡ ΠΎΠΏΡΠΈΠΈ Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΡΡΠ²ΡΡΠ° ΠΈ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡ Π° ΡΡΡΠΈΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π·Π° ΠΊΠ»ΡΡΠΎΠ²Π΅ - ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π΅ Π² Π‘Π£ΠΠ ΡΡΡΠ°Π½Π°.
Π€ΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π² ΡΡΡΠ³ΠΎΠ²ΡΠΊΠΈ ΠΈ Π‘Π£ΠΠ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄
ΡΡΠ½ΠΊΡΠΈΠΈ
Π’ΠΈΠΏ
ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° Π·Π° ΠΏΠ°ΡΠΎΠ»ΠΈ
ΠΡΠΎΠ²Π΅ΡΠΊΠ°
ΠΠ°ΡΠΈΡΠ° Π½Π° ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
RLS
Encryption
ΠΡΠ°ΠΊΡΠ»
ΡΡΡΠ³ΠΎΠ²ΡΠΊΠΈ
+
+
+
+
+
MsSql
ΡΡΡΠ³ΠΎΠ²ΡΠΊΠΈ
+
+
+
+
+
ΡΡΡΠ³ΠΎΠ²ΡΠΊΠΈ
+
+
+
+
ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ
PostgreSQL
ΠΠ΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ
ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ
ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ
-
+
ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ
MongoDb
ΠΠ΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ
-
+
-
-
ΠΡΠ΅Π΄Π»Π°Π³Π° ΡΠ΅ ΡΠ°ΠΌΠΎ Π² MongoDB Enterprise
Π’Π°Π±Π»ΠΈΡΠ°ΡΠ° Π΄Π°Π»Π΅Ρ Π½Π΅ Π΅ ΠΏΡΠ»Π½Π°, Π½ΠΎ ΡΠΈΡΡΠ°ΡΠΈΡΡΠ° Π΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ°: Π² ΠΊΠΎΠΌΠ΅ΡΡΠΈΠ°Π»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° ΡΠ° ΡΠ΅ΡΠ΅Π½ΠΈ ΠΎΡΠ΄Π°Π²Π½Π°, Π² ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΊΠ°ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½ΡΠΊΠ°ΠΊΠ²ΠΈ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ, ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ Π»ΠΈΠΏΡΠ²Π°Ρ , ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΡΡΡΠ±Π²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Π½Π΅ΡΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΏΠ°ΡΠΎΠ»ΠΈ - PostgreSQL ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ (
ΠΠ°ΠΊΠ²ΠΎ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅, Π°ΠΊΠΎ Π½ΠΈΠΊΡΠ΄Π΅ Π½ΡΠΌΠ°ΡΠ΅ ΡΠΎΠ²Π°, ΠΎΡ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° Π‘Π£ΠΠ, ΠΊΠΎΡΡΠΎ Π½ΡΠΌΠ° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅, ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ°Π±ΠΎΡΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π‘Π£ΠΠ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Crypto DB ΠΈΠ»ΠΈ Garda DB. ΠΠΊΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΡ ΡΠ΅Π³ΠΌΠ΅Π½Ρ, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ Π·Π½Π°ΡΡ Π·Π° GOST ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π² ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄.
ΠΡΠΎΡΠΈΡΡ Π²Π°ΡΠΈΠ°Π½Ρ Π΅ ΡΠ°ΠΌΠΈ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠΎΠ²Π°, ΠΎΡ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅, Π΄Π° Π²Π½Π΅Π΄ΡΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°. ΠΡΡΠ½ΠΎ Π΅, ΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎ-ΡΡΡΠ΄Π½ΠΎ Ρ GOST. ΠΠΎ ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠΊΡΠΈΠ΅ΡΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠΏΠΎΡΠ΅Π΄ Π½ΡΠΆΠ΄ΠΈΡΠ΅, Π΄Π° Π³ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π² Π‘Π£ΠΠ, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° Π³ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅ΡΠ΅ ΠΈ Π΄Π΅ΠΊΡΠΈΠΏΡΠΈΡΠ°ΡΠ΅ ΡΠΏΠΎΡΠ΅Π΄ Π½ΡΠΆΠ΄ΠΈΡΠ΅, Π½Π°ΠΏΡΠ°Π²ΠΎ Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π²Π΅Π΄Π½Π°Π³Π° ΠΏΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ Π·Π°ΡΠΈΡΠΈΡΠ΅ ΡΠ΅Π·ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. Π‘ΠΏΠΎΡΠ΅Π΄ Π½Π°Ρ ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ°Π½Π΅ Π½Π° Π½ΠΈΠ²ΠΎ Π‘Π£ΠΠ, Π·Π°ΡΠΎΡΠΎ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ.
Π’ΠΎΠ·ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π·Π° ΠΏΡΡΠ²ΠΈ ΠΏΡΡ Π½Π°
ΠΠ°ΠΊΠ²ΠΎ ΠΎΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΡΠ°:
ΠΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Ceph: MCS ΠΎΠ±Π»Π°ΡΠ½ΠΎ Π±Π»ΠΎΠΊΠΎΠ²ΠΎ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ .ΠΠ°ΠΊ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡ, Π·Π° Π΄Π° Π½Π΅ ΡΠ΅ Π½Π°Π»Π°Π³Π° Π΄Π° ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ .
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com