Aabo ati DBMS: kini o nilo lati ranti nigbati o yan awọn irinṣẹ aabo

Aabo ati DBMS: kini o nilo lati ranti nigbati o yan awọn irinṣẹ aabo

Orukọ mi ni Denis Rozhkov, Emi ni olori idagbasoke sọfitiwia ni ile-iṣẹ iṣẹ Gazinformice, ninu ẹgbẹ ọja. Jatoba. Ofin ati awọn ilana ile-iṣẹ fa awọn ibeere kan fun aabo ipamọ data. Ko si ẹnikan ti o fẹ ki awọn ẹgbẹ kẹta ni iraye si alaye asiri, nitorinaa awọn ọran wọnyi ṣe pataki fun eyikeyi iṣẹ akanṣe: idanimọ ati ijẹrisi, iṣakoso iraye si data, aridaju iduroṣinṣin ti alaye ninu eto, awọn iṣẹlẹ aabo gedu. Nitorinaa, Mo fẹ lati sọrọ nipa diẹ ninu awọn aaye ti o nifẹ nipa aabo DBMS.

Awọn article ti a pese sile da lori a ọrọ ni @DatabasesMeetup, ṣeto Mail.ru awọsanma Solutions. Ti o ko ba fẹ ka, o le wo:


Nkan naa yoo ni awọn ẹya mẹta:

  • Bii o ṣe le ni aabo awọn asopọ.
  • Kini ayewo ti awọn iṣe ati bii o ṣe le ṣe igbasilẹ ohun ti n ṣẹlẹ lori ẹgbẹ data ati sisopọ si rẹ.
  • Bii o ṣe le daabobo data ninu aaye data funrararẹ ati kini awọn imọ-ẹrọ wa fun eyi.

Aabo ati DBMS: kini o nilo lati ranti nigbati o yan awọn irinṣẹ aabo
Awọn paati mẹta ti aabo DBMS: aabo asopọ, iṣatunṣe iṣẹ ṣiṣe ati aabo data

Ṣe aabo awọn asopọ rẹ

O le sopọ si ibi ipamọ data boya taara tabi ni aiṣe-taara nipasẹ awọn ohun elo wẹẹbu. Gẹgẹbi ofin, olumulo iṣowo, iyẹn ni, eniyan ti o ṣiṣẹ pẹlu DBMS, ṣe ajọṣepọ pẹlu rẹ ni aiṣe-taara.

Ṣaaju sisọ nipa idabobo awọn asopọ, o nilo lati dahun awọn ibeere pataki ti o pinnu bii awọn ọna aabo yoo ṣe ṣeto:

  • Njẹ olumulo iṣowo kan jẹ deede si olumulo DBMS kan bi?
  • boya iraye si data DBMS ti pese nipasẹ API kan ti o ṣakoso, tabi boya awọn tabili wọle taara;
  • boya DBMS ti wa ni sọtọ si lọtọ ni idaabobo apa, ti o interacts pẹlu ti o ati bi;
  • boya pooling / aṣoju ati agbedemeji fẹlẹfẹlẹ ti wa ni lilo, eyi ti o le yi alaye nipa bi awọn asopọ ti wa ni itumọ ti ati awọn ti o ti wa ni lilo awọn database.

Bayi jẹ ki a wo iru awọn irinṣẹ le ṣee lo lati ni aabo awọn asopọ:

  1. Lo awọn solusan kilasi ogiriina database. Apapọ aabo ti afikun yoo, ni o kere ju, mu akoyawo ohun ti n ṣẹlẹ ninu DBMS pọ si, ati ni o pọju, iwọ yoo ni anfani lati pese aabo data afikun.
  2. Lo ọrọ igbaniwọle imulo. Lilo wọn da lori bi a ṣe kọ faaji rẹ. Ni eyikeyi idiyele, ọrọ igbaniwọle kan ninu faili iṣeto ti ohun elo wẹẹbu kan ti o sopọ mọ DBMS ko to fun aabo. Nọmba awọn irinṣẹ DBMS wa ti o gba ọ laaye lati ṣakoso ti olumulo ati ọrọ igbaniwọle nilo imudojuiwọn.

    O le ka diẹ sii nipa awọn iṣẹ igbelewọn olumulo nibi, o tun le wa nipa MS SQL Vulnerability Assessmen nibi

  3. Ṣe alekun ọrọ-ọrọ ti igba pẹlu alaye pataki. Ti igba naa ba jẹ akomo, o ko loye tani o n ṣiṣẹ ni DBMS laarin ilana rẹ, o le, laarin ilana ti iṣẹ ṣiṣe, ṣafikun alaye nipa tani n ṣe kini ati idi. Alaye yii ni a le rii ninu iṣayẹwo.
  4. Tunto SSL ti o ko ba ni iyapa nẹtiwọọki laarin DBMS ati awọn olumulo ipari; kii ṣe ni VLAN lọtọ. Ni iru awọn iṣẹlẹ bẹẹ, o jẹ dandan lati daabobo ikanni laarin olumulo ati DBMS funrararẹ. Awọn irinṣẹ aabo tun wa ni orisun ṣiṣi.

Bawo ni eyi yoo ṣe ni ipa lori iṣẹ ti DBMS?

Jẹ ki a wo apẹẹrẹ ti PostgreSQL lati rii bii SSL ṣe ni ipa lori fifuye Sipiyu, mu awọn akoko pọ si ati dinku TPS, ati boya yoo jẹ awọn orisun pupọ ti o ba muu ṣiṣẹ.

Ikojọpọ PostgreSQL ni lilo pgbench jẹ eto ti o rọrun fun ṣiṣe awọn idanwo iṣẹ ṣiṣe. O ṣe ilana-tẹle kan ti awọn aṣẹ leralera, o ṣee ṣe ni awọn akoko ibi ipamọ data ti o jọra, ati lẹhinna ṣe iṣiro oṣuwọn idunadura apapọ.

Idanwo 1 laisi SSL ati lilo SSL - asopọ ti wa ni idasilẹ fun idunadura kọọkan:

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"

Idanwo 2 laisi SSL ati lilo SSL - gbogbo awọn iṣowo ni a ṣe ni asopọ kan:

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"

Awọn eto miiran:

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

Awọn abajade idanwo:

 
KO SSL
SSL

A asopọ ti wa ni idasilẹ fun gbogbo idunadura

lairi apapọ
171.915 ms
187.695 ms

tps pẹlu idasile awọn isopọ
58.168112
53.278062

tps laisi awọn asopọ ti iṣeto
64.084546
58.725846

Sipiyu
24%
28%

Gbogbo awọn iṣowo ni a ṣe ni asopọ kan

lairi apapọ
6.722 ms
6.342 ms

tps pẹlu idasile awọn isopọ
1587.657278
1576.792883

tps laisi awọn asopọ ti iṣeto
1588.380574
1577.694766

Sipiyu
17%
21%

Ni awọn ẹru ina, ipa ti SSL jẹ afiwera si aṣiṣe wiwọn. Ti iye data ti o ti gbe jẹ tobi pupọ, ipo naa le yatọ. Ti a ba fi idi asopọ kan mulẹ fun idunadura kan (eyi jẹ toje, nigbagbogbo asopọ ti pin laarin awọn olumulo), o ni nọmba nla ti awọn asopọ / awọn asopọ, ipa naa le jẹ diẹ tobi. Iyẹn ni, awọn ewu le wa ti iṣẹ ṣiṣe ti o dinku, sibẹsibẹ, iyatọ ko tobi bi ko ṣe lo aabo.

Jọwọ ṣe akiyesi pe iyatọ to lagbara wa ti o ba ṣe afiwe awọn ipo iṣẹ: o n ṣiṣẹ laarin igba kanna tabi ni awọn oriṣiriṣi. Eyi jẹ oye: awọn orisun lo lori ṣiṣẹda asopọ kọọkan.

A ni ọran kan nigba ti a sopọ Zabbix ni ipo igbẹkẹle, iyẹn ni, md5 ko ṣayẹwo, ko si iwulo fun ijẹrisi. Lẹhinna alabara beere lati mu ipo ijẹrisi md5 ṣiṣẹ. Eleyi fi kan eru fifuye lori Sipiyu, ati iṣẹ silẹ. A bẹrẹ lati wa awọn ọna lati mu dara. Ọkan ninu awọn solusan ti o ṣeeṣe si iṣoro naa ni lati ṣe awọn ihamọ nẹtiwọọki, ṣe awọn VLAN lọtọ fun DBMS, ṣafikun awọn eto lati jẹ ki o ye ẹni ti o sopọ lati ibiti ati yọ ijẹrisi kuro. ni gbogbogbo awọn lilo ti awọn oriṣiriṣi awọn ọna ìfàṣẹsí ni ipa lori iṣẹ ati ki o nbeere mu awọn wọnyi okunfa sinu iroyin nigba nse awọn iširo agbara ti olupin (hardware) fun DBMS.

Ipari: ni nọmba awọn solusan, paapaa awọn nuances kekere ni ijẹrisi le ni ipa lori iṣẹ akanṣe ati pe o buru nigbati eyi ba han gbangba nikan nigbati a ṣe imuse ni iṣelọpọ.

Ayẹwo igbese

Ayẹwo le jẹ kii ṣe DBMS nikan. Ayẹwo jẹ nipa gbigba alaye nipa ohun ti n ṣẹlẹ ni awọn abala oriṣiriṣi. Eyi le jẹ boya ogiriina data tabi ẹrọ ṣiṣe lori eyiti a kọ DBMS naa.

Ni ipele Idawọlẹ iṣowo DBMSs ohun gbogbo dara pẹlu iṣatunṣe, ṣugbọn ni orisun ṣiṣi - kii ṣe nigbagbogbo. Eyi ni ohun ti PostgreSQL ni:

  • log aiyipada - iwọle ti a ṣe sinu;
  • awọn amugbooro: pgaudit - ti gedu aiyipada ko ba to fun ọ, o le lo awọn eto lọtọ ti o yanju awọn iṣoro kan.

Afikun iroyin ninu fidio:

"Giwọle alaye ipilẹ le jẹ ipese nipasẹ ile-iṣẹ gedu boṣewa pẹlu log_statement = gbogbo.

Eyi jẹ itẹwọgba fun ibojuwo ati awọn lilo miiran, ṣugbọn ko pese ipele ti alaye ni igbagbogbo ti o nilo fun iṣatunṣe.

Ko to lati ni atokọ ti gbogbo awọn iṣẹ ṣiṣe ti a ṣe lori aaye data.

O yẹ ki o tun ṣee ṣe lati wa awọn alaye kan pato ti o jẹ iwulo si ẹniti nṣe ayẹwo iwe-owo.

Gedu boṣewa ṣe afihan ohun ti olumulo beere, lakoko ti pgAudit dojukọ awọn alaye ti ohun ti o ṣẹlẹ nigbati data data ṣe ibeere naa.

Fun apẹẹrẹ, ẹniti nṣe ayẹwo iwe-owo le fẹ lati rii daju pe tabili kan pato ni a ṣẹda laarin ferese itọju ti o ni akọsilẹ.

Eyi le dabi iṣẹ-ṣiṣe ti o rọrun pẹlu iṣatunṣe ipilẹ ati grep, ṣugbọn kini ti o ba gbekalẹ pẹlu nkan bii eyi (imọọmọ airoju) apẹẹrẹ:

DO$$
BERÈ
EXECUTE 'ṢẸDA agbewọle tabili' || 'ant_tabili(id int)';
IPARI$$;

Gbigbasilẹ boṣewa yoo fun ọ ni eyi:

LOG: gbólóhùn: ṢE $$
BERÈ
EXECUTE 'ṢẸDA agbewọle tabili' || 'ant_tabili(id int)';
IPARI$$;

O han pe wiwa tabili ti iwulo le nilo diẹ ninu imọ koodu ni awọn ọran nibiti a ti ṣẹda awọn tabili ni agbara.

Eyi kii ṣe apẹrẹ, nitori pe yoo jẹ ayanfẹ lati wa nirọrun nipasẹ orukọ tabili.

Eyi ni ibi ti pgAudit wa ni ọwọ.

Fun titẹ sii kanna, yoo gbejade jade ninu akọọlẹ naa:

AUDIT: IKỌKỌ, 33,1, IṢẸ, ṢE,,,"ṢẸ $$
BERÈ
EXECUTE 'ṢẸDA agbewọle tabili' || 'ant_tabili(id int)';
Ipari$$;"
AUDIT: SESSION,33,2,DDL,ṢẸDA TABLE,TABLE,PATABILE.PATAPATA_TABLE,ṢẸDA tabili pataki_tabili (id INT)

Kii ṣe bulọki DO nikan ni o wọle, ṣugbọn tun ni kikun ọrọ ti CREATE TABLE pẹlu iru alaye, iru ohun, ati orukọ kikun, ṣiṣe wiwa rọrun.

Nigbati o ba wọle Yan ati awọn alaye DML, pgAudit le ṣe atunto lati wọle titẹsi lọtọ fun ibatan kọọkan ti tọka si ninu alaye naa.

Ko si itọka ti a nilo lati wa gbogbo awọn alaye ti o kan tabili kan pato(*) ».

Bawo ni eyi yoo ṣe ni ipa lori iṣẹ ti DBMS?

Jẹ ki a ṣiṣẹ awọn idanwo pẹlu ṣiṣe iṣatunṣe kikun ati rii ohun ti o ṣẹlẹ si iṣẹ PostgreSQL. Jẹ ki a mu iwọle data ti o pọju ṣiṣẹ fun gbogbo awọn paramita.

A yipada fere ohunkohun ninu faili iṣeto ni, ohun pataki julọ ni lati tan-an ipo debug5 lati gba alaye ti o pọju.

postgresql.conf

log_destination = 'stderr'
logging_collector = titan
log_truncate_on_rotation = titan
log_rotation_age = 1d
log_rotation_size = 10MB
log_min_messages = yokokoro5
log_min_error_statement = yokokoro5
log_min_duration_statement = 0
debug_print_parse = titan
debug_print_rewritten = titan
debug_print_plan = titan
debug_pretty_print = titan
log_checkpoints = titan
log_connections = titan
log_disconnections = titan
log_duration = titan
log_hostname = titan
log_lock_wait = titan
log_replication_commands = tan
log_temp_files = 0
log_timezone = 'Europe/Moscow'

Lori DBMS PostgreSQL pẹlu awọn aye ti 1 Sipiyu, 2,8 GHz, 2 GB Ramu, 40 GB HDD, a ṣe awọn idanwo fifuye mẹta ni lilo awọn aṣẹ:

$ 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

Awọn abajade idanwo:

Ko si gedu
Pẹlu gedu

Lapapọ akoko kikun aaye data
43,74 iṣẹju-aaya
53,23 iṣẹju-aaya

Ramu
24%
40%

Sipiyu
72%
91%

Idanwo 1 (awọn asopọ 50)

Nọmba ti lẹkọ ni 10 iṣẹju
74169
32445

Awọn iṣowo / iṣẹju-aaya
123
54

Apapọ Lairi
405 ms
925 ms

Idanwo 2 (awọn asopọ 150 pẹlu 100 ṣee ṣe)

Nọmba ti lẹkọ ni 10 iṣẹju
81727
31429

Awọn iṣowo / iṣẹju-aaya
136
52

Apapọ Lairi
550 ms
1432 ms

Nipa awọn iwọn

DB iwọn
2251 MB
2262 MB

Iwọn log database
0 MB
4587 MB

Laini isalẹ: iṣayẹwo kikun ko dara pupọ. Awọn data lati inu iṣayẹwo yoo tobi bi data ti o wa ninu database funrararẹ, tabi paapaa diẹ sii. Awọn iye ti gedu ti o ti wa ni ti ipilẹṣẹ nigba ṣiṣẹ pẹlu a DBMS a wọpọ isoro ni isejade.

Jẹ ki a wo awọn paramita miiran:

  • Iyara naa ko yipada pupọ: laisi gedu - 43,74 awọn aaya, pẹlu gedu - 53,23 aaya.
  • Ramu ati iṣẹ Sipiyu yoo jiya nitori o nilo lati ṣe agbekalẹ faili iṣayẹwo kan. Eyi tun jẹ akiyesi ni iṣelọpọ.

Bi nọmba awọn asopọ ṣe pọ si, nipa ti ara, iṣẹ naa yoo bajẹ diẹ.

Ni awọn ile-iṣẹ pẹlu iṣayẹwo o nira paapaa diẹ sii:

  • data pupọ wa;
  • iṣatunṣe nilo kii ṣe nipasẹ syslog ni SIEM nikan, ṣugbọn tun ninu awọn faili: ti nkan kan ba ṣẹlẹ si syslog, faili gbọdọ wa nitosi ibi ipamọ data ninu eyiti o ti fipamọ data naa;
  • a nilo selifu lọtọ fun iṣatunwo ki o má ba sọ awọn disiki I/O ṣòfo, bi o ti gba aaye pupọ;
  • O ṣẹlẹ pe awọn oṣiṣẹ aabo alaye nilo awọn iṣedede GOST nibi gbogbo, wọn nilo idanimọ ipinlẹ.

Idinamọ wiwọle si data

Jẹ ki a wo awọn imọ-ẹrọ ti a lo lati daabobo data ati wọle si ni awọn DBMS ti iṣowo ati orisun ṣiṣi.

Kini o le lo ni gbogbogbo:

  1. Ìsekóòdù ati obfuscation ti awọn ilana ati awọn iṣẹ (Wrapping) - iyẹn ni, awọn irinṣẹ lọtọ ati awọn ohun elo ti o jẹ ki koodu kika ko ṣee ka. Lootọ, lẹhinna ko le yipada tabi tun pada sẹhin. Ọna yii ni igba miiran nilo ni o kere ju ni ẹgbẹ DBMS - ọgbọn ti awọn ihamọ iwe-aṣẹ tabi ọgbọn igbanilaaye jẹ fifi ẹnọ kọ nkan ni deede ni ilana ati ipele iṣẹ.
  2. Idiwọn hihan data nipasẹ awọn ori ila (RLS) jẹ nigbati awọn olumulo oriṣiriṣi wo tabili kan, ṣugbọn akojọpọ oriṣiriṣi ti awọn ori ila ninu rẹ, iyẹn ni, ohun kan ko le han si ẹnikan ni ipele ila.
  3. Ṣiṣatunṣe data ti o han (Masking) jẹ nigbati awọn olumulo ninu iwe kan ti tabili rii boya data tabi awọn ami akiyesi nikan, iyẹn ni, fun diẹ ninu awọn olumulo alaye naa yoo wa ni pipade. Imọ-ẹrọ pinnu iru olumulo ti o han kini o da lori ipele wiwọle wọn.
  4. Aabo DBA/ Ohun elo DBA/DBA iṣakoso wiwọle jẹ, dipo, nipa ihamọ iraye si DBMS funrararẹ, iyẹn ni, awọn oṣiṣẹ aabo alaye le yapa lati ọdọ awọn oludari data ati awọn alabojuto ohun elo. Awọn imọ-ẹrọ diẹ ni o wa ni orisun ṣiṣi, ṣugbọn ọpọlọpọ wọn wa ni awọn DBMS ti iṣowo. Wọn nilo nigbati ọpọlọpọ awọn olumulo wa pẹlu iraye si awọn olupin funrararẹ.
  5. Idinamọ wiwọle si awọn faili ni ipele eto faili. O le fun awọn ẹtọ ati awọn anfani wiwọle si awọn ilana ki alakoso kọọkan ni iraye si data pataki nikan.
  6. Wiwọle dandan ati imukuro iranti - awọn imọ-ẹrọ wọnyi kii ṣe lilo pupọ.
  7. Ipilẹṣẹ ipari-si-opin taara lati DBMS jẹ fifi ẹnọ kọ nkan-ẹgbẹ alabara pẹlu iṣakoso bọtini ni ẹgbẹ olupin.
  8. Data ìsekóòdù. Fun apẹẹrẹ, fifi ẹnọ kọ nkan ti ọwọn jẹ nigbati o ba lo ẹrọ ti o ṣe encrypts iwe kan ti data data.

Bawo ni eyi ṣe ni ipa lori iṣẹ ti DBMS?

Jẹ ki a wo apẹẹrẹ ti fifi ẹnọ kọ nkan ọwọn ni PostgreSQL. Module pgcrypto kan wa, o fun ọ laaye lati fipamọ awọn aaye ti a yan ni fọọmu ti paroko. Eyi wulo nigbati diẹ ninu awọn data nikan ni o niyelori. Lati ka awọn aaye ti paroko, alabara n gbe bọtini decryption kan, olupin naa npa data naa ki o da pada si alabara. Laisi bọtini, ko si ẹnikan ti o le ṣe ohunkohun pẹlu data rẹ.

Jẹ ki a ṣe idanwo pẹlu pgcrypto. Jẹ ki a ṣẹda tabili kan pẹlu data ti paroko ati data deede. Ni isalẹ wa awọn aṣẹ fun ṣiṣẹda awọn tabili, ni laini akọkọ pupọ wa aṣẹ ti o wulo - ṣiṣẹda itẹsiwaju funrararẹ pẹlu iforukọsilẹ DBMS:

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'));

Nigbamii, jẹ ki a gbiyanju lati ṣe apẹẹrẹ data lati tabili kọọkan ki o wo awọn akoko ipaniyan.

Yiyan lati kan tabili lai ìsekóòdù iṣẹ:

psql -c "timing" -c "select * from t1 limit 1000;" "host=192.168.220.129 dbname=taskdb
user=postgres sslmode=disable" > 1.txt

Aago iṣẹju-aaya wa ni titan.

  id | ọrọ1 | ọrọ2
——+——-+——-
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
...
997 | 997 | 997
998 | 998 | 998
999 | 999 | 999
1000 | 1000 | 1000
(1000 ila)

Akoko: 1,386 ms

Aṣayan lati tabili pẹlu iṣẹ fifi ẹnọ kọ nkan:

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

Aago iṣẹju-aaya wa ni titan.

  id | decrypt | decrypt
——+———————————
1 | x31 | x31
2 | x32 | x32
3 | x33 | x33
...
999 | x393939 | x393939
1000 | x31303030 | x31303030
(1000 ila)

Akoko: 50,203 ms

Awọn abajade idanwo:

 
Laisi ìsekóòdù
Pgcrypto (decrypt)

Ayẹwo 1000 awọn ori ila
1,386 ms
50,203 ms

Sipiyu
15%
35%

Ramu
 
+ 5%

Ìsekóòdù ni ipa nla lori iṣẹ. O le rii pe akoko naa ti pọ si, nitori awọn iṣẹ iṣipopada ti data fifi ẹnọ kọ nkan (ati pe decryption jẹ igbagbogbo ti a we sinu ọgbọn rẹ) nilo awọn orisun pataki. Iyẹn ni, imọran ti fifipamọ gbogbo awọn ọwọn ti o ni diẹ ninu awọn data jẹ pẹlu idinku ninu iṣẹ.

Sibẹsibẹ, fifi ẹnọ kọ nkan kii ṣe ọta ibọn fadaka ti o yanju gbogbo awọn iṣoro. Awọn data ti a ti sọ di mimọ ati bọtini iṣipopada lakoko ilana ti sisọ ati gbigbe data wa lori olupin naa. Nitorinaa, awọn bọtini le ṣe idaduro nipasẹ ẹnikan ti o ni iwọle ni kikun si olupin data data, gẹgẹbi oluṣakoso eto.

Nigbati bọtini kan ba wa fun gbogbo iwe fun gbogbo awọn olumulo (paapaa ti kii ṣe fun gbogbo rẹ, ṣugbọn fun awọn alabara ti ṣeto lopin), eyi ko dara nigbagbogbo ati pe. Ti o ni idi ti wọn bẹrẹ lati ṣe fifi ẹnọ kọ nkan ipari-si-opin, ninu DBMS wọn bẹrẹ lati gbero awọn aṣayan fun fifi ẹnọ kọ nkan data lori alabara ati ẹgbẹ olupin, ati pe awọn ibi ipamọ bọtini-ipamọ kanna ti han - awọn ọja lọtọ ti o pese iṣakoso bọtini lori DBMS ẹgbẹ.

Aabo ati DBMS: kini o nilo lati ranti nigbati o yan awọn irinṣẹ aabo
Apeere ti iru fifi ẹnọ kọ nkan ni MongoDB

Awọn ẹya aabo ni iṣowo ati orisun ṣiṣi DBMS

Awọn iṣẹ
Iru
Afihan Ọrọigbaniwọle
Irowo
Idabobo koodu orisun ti awọn ilana ati awọn iṣẹ
RLS
ìsekóòdù

Ebora
ti owo
+
+
+
+
+

MsSql
ti owo
+
+
+
+
+

Jatoba
ti owo
+
+
+
+
amugbooro

PostgreSQL
free
amugbooro
amugbooro
-
+
amugbooro

MongoDb
free
-
+
-
-
Wa ni MongoDB Enterprise nikan

Tabili naa jina lati pari, ṣugbọn ipo naa jẹ eyi: ninu awọn ọja iṣowo, awọn iṣoro aabo ti wa ni idojukọ fun igba pipẹ, ni orisun ṣiṣi, gẹgẹbi ofin, diẹ ninu awọn afikun awọn afikun ni a lo fun aabo, ọpọlọpọ awọn iṣẹ ti o padanu. , nigbami o ni lati fi nkan kun. Fun apẹẹrẹ, awọn eto imulo ọrọ igbaniwọle - PostgreSQL ni ọpọlọpọ awọn amugbooro oriṣiriṣi (1, 2, 3, 4, 5), eyiti o ṣe imulo awọn eto imulo ọrọ igbaniwọle, ṣugbọn, ni ero mi, ko si ọkan ninu wọn ti o bo gbogbo awọn iwulo ti apakan ajọṣepọ inu ile.

Kini lati ṣe ti o ko ba ni ohun ti o nilo nibikibi? Fun apẹẹrẹ, o fẹ lo DBMS kan pato ti ko ni awọn iṣẹ ti alabara nilo.

Lẹhinna o le lo awọn solusan ẹni-kẹta ti o ṣiṣẹ pẹlu oriṣiriṣi DBMS, fun apẹẹrẹ, Crypto DB tabi Garda DB. Ti a ba n sọrọ nipa awọn solusan lati inu apa ile, lẹhinna wọn mọ nipa GOSTs dara ju ni orisun ṣiṣi.

Aṣayan keji ni lati kọ ohun ti o nilo funrararẹ, ṣe iraye si data ati fifi ẹnọ kọ nkan ninu ohun elo ni ipele ilana. Otitọ, yoo jẹ diẹ sii nira pẹlu GOST. Ṣugbọn ni gbogbogbo, o le tọju data naa bi o ṣe nilo, fi sii sinu DBMS, lẹhinna gba pada ki o si kọ ọ bi o ti nilo, ni ọtun ni ipele ohun elo. Ni akoko kanna, lẹsẹkẹsẹ ronu bi o ṣe le daabobo awọn algoridimu wọnyi ninu ohun elo naa. Ninu ero wa, eyi yẹ ki o ṣee ṣe ni ipele DBMS, nitori yoo ṣiṣẹ ni iyara.

Iroyin yii ni akọkọ gbekalẹ ni @Databases Ipade nipasẹ Mail.ru Awọn solusan awọsanma. Wo видео awọn iṣẹ ṣiṣe miiran ati ṣe alabapin si awọn ikede iṣẹlẹ lori Telegram Ni ayika Kubernetes ni Mail.ru Group.

Kini ohun miiran lati ka lori koko:

  1. Diẹ ẹ sii ju Ceph: Ibi ipamọ bulọọki awọsanma MCS.
  2. Bii o ṣe le yan aaye data kan fun iṣẹ akanṣe ki o ko ni lati yan lẹẹkansi.

orisun: www.habr.com

Fi ọrọìwòye kun