امنیت او DBMS: هغه څه چې تاسو اړتیا لرئ په یاد ولرئ کله چې د امنیت وسیلې غوره کړئ

امنیت او DBMS: هغه څه چې تاسو اړتیا لرئ په یاد ولرئ کله چې د امنیت وسیلې غوره کړئ

زما نوم ډینس روزکوف دی، زه د محصولاتو په ټیم کې د ګازینفارم خدمت شرکت کې د سافټویر پراختیا رییس یم جتوبا. قانون او د کارپوریټ مقررات د معلوماتو ذخیره کولو امنیت لپاره ځینې اړتیاوې وضع کوي. هیڅوک نه غواړي چې دریمې ډلې محرم معلوماتو ته لاسرسی ومومي، نو لاندې مسلې د هرې پروژې لپاره مهم دي: پیژندنه او تصدیق، ډیټا ته د لاسرسي اداره کول، په سیسټم کې د معلوماتو بشپړتیا یقیني کول، د امنیتي پیښو ثبت کول. له همدې امله، زه غواړم د DBMS امنیت په اړه د ځینو په زړه پورې ټکو په اړه وغږیږم.

مقاله د یوې وینا پر بنسټ چمتو شوې وه @DatabasesMeetup، منظم Mail.ru کلاوډ حلونه. که تاسو لوستل نه غواړئ، تاسو کولی شئ وګورئ:


مقاله به درې برخې ولري:

  • د اړیکو خوندي کولو څرنګوالی.
  • د کړنو پلټنه څه شی دی او څنګه د ډیټابیس اړخ کې څه پیښیږي ثبت کول او ورسره نښلول.
  • په ډیټابیس کې د ډیټا خوندي کولو څرنګوالی او د دې لپاره کوم ټیکنالوژي شتون لري.

امنیت او DBMS: هغه څه چې تاسو اړتیا لرئ په یاد ولرئ کله چې د امنیت وسیلې غوره کړئ
د DBMS امنیت درې برخې: د پیوستون ساتنه، د فعالیت پلټنه او د معلوماتو ساتنه

ستاسو اړیکې خوندي کول

تاسو کولی شئ د ډیټابیس سره مستقیم یا غیر مستقیم د ویب غوښتنلیکونو له لارې وصل شئ. د یوې قاعدې په توګه، د سوداګرۍ کاروونکي، هغه څوک چې د DBMS سره کار کوي، په غیر مستقیم ډول ورسره اړیکه لري.

مخکې له دې چې د ارتباطاتو د ساتنې په اړه وغږیږئ، تاسو اړتیا لرئ مهم پوښتنو ته ځواب ووایاست چې دا معلومه کړي چې امنیتي تدابیر به څنګه جوړ شي:

  • ایا یو سوداګریز کارونکی د یو DBMS کارونکي سره مساوي دی؟
  • ایا د DBMS ډیټا ته لاسرسی یوازې د هغه API له لارې چمتو شوی چې تاسو یې کنټرولوي ، یا ایا میزونو ته مستقیم لاسرسی کیږي؛
  • ایا DBMS جلا خوندي برخې ته تخصیص شوی، څوک ورسره اړیکه لري او څنګه؛
  • آیا پولینګ/پراکسي او منځمهاله پرتونه کارول کیږي، کوم چې کولی شي معلومات بدل کړي چې څنګه پیوستون جوړ شوی او څوک ډیټابیس کاروي.

اوس راځئ وګورو چې د اړیکو خوندي کولو لپاره کوم وسیلې کارول کیدی شي:

  1. د ډیټابیس فایروال ټولګي حلونه وکاروئ. د محافظت اضافي پرت به لږترلږه د هغه څه روڼتیا ته وده ورکړي چې په DBMS کې پیښیږي ، او په اعظمي توګه به تاسو وکولی شئ د اضافي معلوماتو محافظت چمتو کړئ.
  2. د پټنوم پالیسۍ وکاروئ. د دوی کارول پدې پورې اړه لري چې ستاسو جوړښت څنګه جوړ شوی. په هر حالت کې، د ویب غوښتنلیک په ترتیب کولو فایل کې یو پټنوم چې د DBMS سره وصل کیږي د ساتنې لپاره کافي ندي. د DBMS یو شمیر وسیلې شتون لري چې تاسو ته اجازه درکوي کنټرول کړئ چې کارن او پټنوم تازه کولو ته اړتیا لري.

    تاسو کولی شئ د کاروونکي درجه بندي دندو په اړه نور ولولئ دلتهتاسو کولی شئ د MS SQL زیان منونکي ارزونکي په اړه هم ومومئ دلته

  3. د اړینو معلوماتو سره د غونډې شرایط بډایه کړئ. که غونډه ناپاکه وي، تاسو نه پوهیږئ چې څوک د DBMS په چوکاټ کې کار کوي، تاسو کولی شئ، د عملیاتو په چوکاټ کې، د دې په اړه معلومات اضافه کړئ چې څوک څه کوي او ولې. دا معلومات په پلټنه کې لیدل کیدی شي.
  4. SSL تنظیم کړئ که تاسو د DBMS او پای کاروونکو ترمنځ د شبکې جلا کول نلرئ؛ دا په جلا VLAN کې ندي. په داسې قضیو کې ، دا اړینه ده چې پخپله د مصرف کونکي او DBMS ترمینځ چینل خوندي کړئ. امنیتي وسیلې په خلاصې سرچینې کې هم شتون لري.

دا به د DBMS فعالیت څنګه اغیزه وکړي؟

راځئ چې د PostgreSQL مثال وګورو ترڅو وګورو چې څنګه SSL د CPU بار اغیزه کوي، وختونه زیاتوي او TPS کموي، او ایا دا به ډیرې سرچینې مصرف کړي که تاسو یې فعال کړئ.

د pgbench په کارولو سره د PostgreSQL بار کول د فعالیت ازموینې چلولو لپاره یو ساده برنامه ده. دا د حکمونو یو واحد ترتیب په مکرر ډول اجرا کوي ، ممکن په موازي ډیټابیس غونډو کې ، او بیا د اوسط لیږد نرخ محاسبه کوي.

د SSL پرته او د SSL کارولو سره 1 ازموینه وکړئ - د هرې معاملې لپاره اړیکه جوړه شوې ده:

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"

د SSL پرته او د SSL کارولو سره 2 ازموینه وکړئ - ټولې معاملې په یوه اړیکه کې ترسره کیږي:

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

د ازموینې پایلې:

 
NO SSL
ایس ایس

د هرې معاملې لپاره اړیکه جوړه شوې ده

د ځنډ اوسط
171.915 MS
187.695 MS

tps په شمول د اړیکو تاسیس کول
58.168112
53.278062

tps پرته د اړیکو تاسیس کول
64.084546
58.725846

سی پی یو
۸۵٪
۸۵٪

ټولې معاملې په یوه اړیکه کې ترسره کیږي

د ځنډ اوسط
6.722 MS
6.342 MS

tps په شمول د اړیکو تاسیس کول
1587.657278
1576.792883

tps پرته د اړیکو تاسیس کول
1588.380574
1577.694766

سی پی یو
۸۵٪
۸۵٪

په سپک بارونو کې، د SSL نفوذ د اندازه کولو تېروتنې سره د پرتلې وړ دی. که چیرې د لیږدول شوي معلوماتو مقدار خورا لوی وي، وضعیت ممکن توپیر ولري. که موږ په هره راکړه ورکړه کې یوه اړیکه جوړه کړو (دا نادره ده، معمولا اړیکه د کاروونکو ترمنځ شریکه شوې وي)، تاسو لوی شمیر اړیکې/منقطع لرئ، اغیزه ممکن یو څه لوی وي. دا دی، ممکن د فعالیت کمولو خطرونه شتون ولري، په هرصورت، توپیر دومره لوی نه دی لکه څنګه چې د محافظت نه کارول کیږي.

مهرباني وکړئ په یاد ولرئ چې یو قوي توپیر شتون لري که تاسو عملیاتي حالتونه پرتله کړئ: تاسو په ورته ناسته کې کار کوئ یا په مختلف کې. دا د پوهیدو وړ ده: سرچینې د هرې اړیکې رامینځته کولو لپاره مصرف کیږي.

موږ یوه قضیه درلوده کله چې موږ زبیکس د باور حالت کې وصل کړ، دا دی، md5 چک شوی نه و، تصدیق ته اړتیا نشته. بیا پیرودونکي وغوښتل چې د md5 تصدیق کولو حالت فعال کړي. دې په CPU کې دروند بار واچاوه ، او فعالیت یې راټیټ شو. موږ د اصلاح کولو لارو په لټه کې شو. د ستونزې یوه ممکنه حل د شبکې محدودیت پلي کول دي ، د DBMS لپاره جلا VLANs رامینځته کړئ ، تنظیمات اضافه کړئ ترڅو روښانه شي چې څوک له کوم ځای څخه وصل کیږي او تصدیق لرې کړئ. تاسو کولی شئ د تصدیق کولو تنظیم کولو لګښتونو کمولو لپاره د تصدیق تنظیم کول هم غوره کړئ کله چې تصدیق فعال کړئ. ، مګر په عموم کې د مختلف میتودونو کارول په فعالیت اغیزه کوي او د DBMS لپاره د سرورونو (هارډویر) کمپیوټري ځواک ډیزاین کولو پرمهال دا فکتورونه په پام کې نیولو ته اړتیا لري.

پایله: په یو شمیر حلونو کې ، حتی په تصدیق کې کوچني لنډیزونه کولی شي پروژه خورا اغیزه وکړي او دا خراب دی کله چې دا یوازې هغه وخت روښانه کیږي کله چې په تولید کې پلي شي.

د عمل پلټنه

پلټنه نه یوازې DBMS کیدی شي. پلټنه د هغه څه په اړه معلومات ترلاسه کول دي چې په بیلابیلو برخو کې پیښیږي. دا کیدای شي د ډیټابیس فایر وال یا عملیاتي سیسټم وي چې DBMS جوړ شوی.

د سوداګریزې سوداګرۍ کچې DBMSs کې هرڅه د پلټنې سره سم دي ، مګر په خلاصې سرچینې کې - تل نه. دلته هغه څه دي چې PostgreSQL لري:

  • ډیفالټ لاګ - جوړ شوی ننوتل؛
  • توسیعونه: pgaudit - که ډیفالټ لاګنګ ستاسو لپاره کافي نه وي ، تاسو کولی شئ جلا تنظیمات وکاروئ چې ځینې ستونزې حل کړي.

نور حال په ویډیو کې راپور کې:

"د بنسټیز بیان لاګنګ د log_statement = all سره د معیاري ننوتلو اسانتیا لخوا چمتو کیدی شي.

دا د څارنې او نورو استعمالونو لپاره د منلو وړ دی، مګر د توضیحاتو کچه نه وړاندې کوي چې عموما د پلټنې لپاره اړین دي.

دا کافي ندي چې په ډیټابیس کې د ترسره شوي ټولو عملیاتو لیست ولرئ.

دا هم باید ممکنه وي چې ځانګړي بیانونه ومومئ کوم چې د پلټونکي لپاره علاقه لري.

معیاري لاګنګ ښیي چې کارونکي څه غوښتنه کړې ، پداسې حال کې چې pgAudit د هغه څه په توضیحاتو تمرکز کوي کله چې ډیټابیس پوښتنې اجرا کړې.

د مثال په توګه، پلټونکی ممکن دا تصدیق کړي چې یو ځانګړی میز د مستند ساتنې کړکۍ کې رامینځته شوی.

دا ممکن د لومړني پلټنې او ګریپ سره د ساده کار په څیر بریښي ، مګر څه به وي که تاسو د داسې یو څه سره وړاندې شوي یاست (په قصدي ډول مغشوشونکي) مثال:

$$ وکړئ
پيل كيدل؛ شروع كيدل: او چنېدل، راوتل
د جدول واردول جوړ کړئ 'ant_table(id int)';
پای$$;

معیاري ننوتل به تاسو ته دا درکړي:

LOG: بیان: DO $$
پيل كيدل؛ شروع كيدل: او چنېدل، راوتل
د جدول واردول جوړ کړئ 'ant_table(id int)';
پای$$;

داسې ښکاري چې د ګټو جدول موندل ممکن د کوډ ځینې پوهې ته اړتیا ولري په هغه قضیو کې چیرې چې میزونه په متحرک ډول رامینځته شوي.

دا مثالی ندی، ځکه چې دا به غوره وي چې په ساده ډول د میز نوم په واسطه وپلټئ.

دا هغه ځای دی چې pgAudit په کار کې راځي.

د ورته ان پټ لپاره، دا به دا محصول په لاګ کې تولید کړي:

پلټنه: غونډه، 33,1، فعالیت، ترسره کړئ،،، "$$ وکړئ
پيل كيدل؛ شروع كيدل: او چنېدل، راوتل
د جدول واردول جوړ کړئ 'ant_table(id int)';
پای$$؛"
پلټنه: SESSION,33,2,DDL, جدول جوړ کړئ, جدول, public.important_table, CREATE TABLE important_table (ID INT)

نه یوازې د DO بلاک لاګ شوی ، بلکه د CREATE TABLE بشپړ متن د بیان ډول ، څیز ډول ، او بشپړ نوم سره ، لټون کول اسانه کوي.

کله چې د SELECT او DML بیانونو ته ننوتل، pgAudit د هرې اړیکې لپاره جلا ننوتلو لپاره تنظیم کیدی شي چې په بیان کې حواله شوي.

د ټولو بیانونو موندلو لپاره هیڅ تحلیل ته اړتیا نشته چې یو ځانګړي میز سره اړیکه ونیسي(*) ».

دا به د DBMS فعالیت څنګه اغیزه وکړي؟

راځئ چې د بشپړې پلټنې فعالولو سره ازموینې پرمخ بوځو او وګورو چې د PostgreSQL فعالیت سره څه کیږي. راځئ چې د ټولو پیرامیټونو لپاره اعظمي ډیټابیس لاګنګ فعال کړو.

موږ د ترتیب کولو فایل کې نږدې هیڅ شی نه بدلوو، ترټولو مهمه خبره دا ده چې د ډیبګ 5 حالت فعال کړئ ترڅو اعظمي معلومات ترلاسه کړئ.

postgresql.conf

log_destination = 'stderr'
logging_collector = آن
log_truncate_on_rotation = آن
log_rotation_age = 1d
log_rotation_size = 10MB
log_min_messages = debug5
log_min_error_statement = debug5
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 DBMS کې د 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 سیک

رام
۸۵٪
۸۵٪

سی پی یو
۸۵٪
۸۵٪

ازموینه 1 (50 پیوستون)

په 10 دقیقو کې د معاملو شمیر
74169
32445

راکړې ورکړې/sec
123
54

اوسط ځنډ
405 MS
925 MS

ازموینه 2 (د 150 ممکنه سره 100 اړیکې)

په 10 دقیقو کې د معاملو شمیر
81727
31429

راکړې ورکړې/sec
136
52

اوسط ځنډ
550 MS
1432 MS

د اندازو په اړه

د DB اندازه
2251 MB
2262 MB

د ډیټابیس لاګ اندازه
0 MB
4587 MB

لاندینۍ کرښه: بشپړه پلټنه ډیره ښه نه ده. د پلټنې ډاټا به په ډیټابیس کې د معلوماتو په څیر لوی وي، یا حتی نور هم. د ننوتلو مقدار چې د DBMS سره کار کولو پرمهال رامینځته کیږي په تولید کې یوه عامه ستونزه ده.

راځئ چې نور پیرامیټونه وګورو:

  • سرعت ډیر بدلون نه کوي: د ننوتلو پرته - 43,74 ثانیې، د ننوتلو سره - 53,23 ثانیې.
  • د RAM او CPU فعالیت به زیانمن شي، ځکه چې تاسو اړتیا لرئ د پلټنې فایل تولید کړئ. دا په تولید کې هم د پام وړ دی.

لکه څنګه چې د اړیکو شمیر ډیریږي، په طبیعي توګه، فعالیت به یو څه خراب شي.

په شرکتونو کې د پلټنې سره دا خورا ستونزمن کار دی:

  • ډیر معلومات شتون لري؛
  • پلټنه نه یوازې په SIEM کې د syslog له لارې اړینه ده، بلکې په فایلونو کې هم: که چیرې syslog ته یو څه پیښ شي، نو باید د ډیټابیس سره نږدې یو فایل وي چیرې چې ډاټا خوندي کیږي؛
  • د پلټنې لپاره یو جلا شیلف ته اړتیا ده ترڅو د I/O ډیسک ضایع نشي، ځکه چې دا ډیر ځای نیسي؛
  • دا پیښیږي چې د معلوماتو امنیت کارمندان هرچیرې د GOST معیارونو ته اړتیا لري ، دوی د دولت پیژندنې ته اړتیا لري.

معلوماتو ته د لاسرسي محدودول

راځئ هغه ټیکنالوژۍ وګورو چې د ډیټا خوندي کولو لپاره کارول کیږي او په سوداګریز DBMSs او خلاصې سرچینې کې ورته لاسرسی لري.

تاسو عموما څه کارولی شئ:

  1. د پروسیجرونو او دندو کوډ کول او ګډوډ کول (ریپینګ) - دا دی، جلا وسایل او اسانتیاوې چې د لوستلو وړ کوډ نه لوستل کیږي. ریښتیا، نو دا نه بدلیدلی شي او نه هم بیرته راګرځیدلی شي. دا طریقه ځینې وختونه لږترلږه د DBMS اړخ ته اړتیا لري - د جواز محدودیتونو یا د واک ورکولو منطق د طرزالعمل او فعالیت په کچه دقیقا کوډ شوی.
  2. د قطارونو (RLS) په واسطه د معلوماتو لید محدودیت هغه وخت دی کله چې مختلف کاروونکي یو میز وګوري، مګر په دې کې د قطارونو مختلف جوړښت، دا دی، یو څه د قطار په کچه یو چا ته نشي ښودل کیدی.
  3. د ښودل شوي ډیټا ایډیټ کول (ماسکینګ) هغه وخت دی کله چې کارونکي د میز په یوه کالم کې یا ډیټا یا یوازې ستوري وګوري ، دا د ځینې کاروونکو لپاره معلومات به بند وي. ټیکنالوژي ټاکي چې کوم کارونکي ښودل شوي چې د دوی د لاسرسي کچې پراساس دي.
  4. امنیت DBA/Application DBA/DBA د لاسرسي کنټرول پخپله DBMS ته د لاسرسي محدودولو په اړه دی ، دا د معلوماتو امنیت کارمندان د ډیټابیس مدیرانو او غوښتنلیک مدیرانو څخه جلا کیدی شي. په خلاصې سرچینې کې داسې لږ ټیکنالوژي شتون لري، مګر په سوداګریزو DBMSs کې ډیری شتون لري. دوی اړتیا لري کله چې ډیری کاروونکي شتون ولري چې سرورونو ته لاسرسی ولري.
  5. د فایل سیسټم په کچه فایلونو ته د لاسرسي محدودیت. تاسو کولی شئ لارښودونو ته حقونه او د لاسرسي امتیازات ورکړئ ترڅو هر مدیر یوازې اړین معلوماتو ته لاسرسی ولري.
  6. لازمي لاسرسی او د حافظې پاکول - دا ټیکنالوژي په ندرت سره کارول کیږي.
  7. له پای څخه تر پایه کوډ کول مستقیم د DBMS څخه د پیرودونکي اړخ کوډ کول دي چې د سرور اړخ کې د کلیدي مدیریت سره.
  8. د معلوماتو کوډ کول. د مثال په توګه، د کالم کوډ کول هغه وخت دی چې تاسو یو میکانیزم کاروئ چې د ډیټابیس یو واحد کالم کوډ کوي.

دا څنګه د DBMS فعالیت اغیزه کوي؟

راځئ چې په PostgreSQL کې د کالم کوډ کولو مثال وګورو. د pgcrypto ماډل شتون لري، دا تاسو ته اجازه درکوي چې غوره شوي ساحې په کوډ شوي بڼه ذخیره کړئ. دا ګټور دی کله چې یوازې ځینې معلومات ارزښت لري. د کوډ شوي ساحو لوستلو لپاره، پیرودونکي د کوډ کولو کیلي لیږدوي، سرور ډیټا ډیکرپټ کوي او پیرودونکي ته یې بیرته ورکوي. د کیلي پرته، هیڅوک نشي کولی ستاسو د معلوماتو سره څه وکړي.

راځئ چې د pgcrypto سره ازموینه وکړو. راځئ چې د کوډ شوي ډیټا او منظم معلوماتو سره میز جوړ کړو. لاندې د جدولونو رامینځته کولو امرونه دي ، په لومړۍ کرښه کې یو ګټور کمانډ شتون لري - د 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'));

بیا، راځئ هڅه وکړو چې د هر جدول څخه د معلوماتو نمونه جوړه کړو او د اجرا کولو وختونه وګورو.

د کوډ کولو فعالیت پرته د میز څخه غوره کول:

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
۱ | ۱ | 2
۱ | ۱ | 3
...
997 | 997 | ۹۹۷
998 | 998 | ۹۹۷
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 | پټول | پټول
——+—————+———
۱ | x1 | x31
۱ | x2 | x32
3 | x33 | x33
...
۱ | x999 | x393939
1000 | x31303030 | x31303030
(1000 کرښې)

وخت: 50,203 ms

د ازموینې پایلې:

 
هیڅ کوډ نشته
Pgcrypto (خفیه کول)

نمونه 1000 قطارونه
1,386 MS
50,203 MS

سی پی یو
۸۵٪
۸۵٪

رام
 
+ 5٪

کوډ کول په فعالیت باندې لوی تاثیر لري. دا لیدل کیدی شي چې وخت ډیر شوی، ځکه چې د کوډ شوي ډیټا ډیکریپشن عملیات (او ډیکریپشن معمولا لاهم ستاسو په منطق کې پوښل کیږي) د پام وړ سرچینو ته اړتیا لري. دا دی، د ټولو کالمونو د کوډ کولو مفکوره چې ځینې ډاټا لري د فعالیت کمښت سره ډک دی.

په هرصورت، کوډ کول د سپینو زرو ګولۍ ندي چې ټولې ستونزې حل کړي. ډیکرپټ شوي ډیټا او د ډیکریپشن کیلي د ډیټا د کوډ کولو او لیږدولو پروسې په جریان کې په سرور کې موقعیت لري. نو ځکه، کیلي د هغه چا لخوا مداخله کیدی شي څوک چې د ډیټابیس سرور ته بشپړ لاسرسی لري، لکه د سیسټم مدیر.

کله چې د ټولو کاروونکو لپاره د ټول کالم لپاره یوه کلیدي وي (حتی که د ټولو لپاره نه وي، مګر د محدود محدود پیرودونکو لپاره)، دا تل ښه او سمه نه وي. له همدې امله دوی د پای څخه تر پای پورې کوډ کول پیل کړل، په DBMS کې دوی د پیرودونکي او سرور اړخ کې د ډیټا کوډ کولو اختیارونو په پام کې نیولو پیل وکړ، او ورته ورته کلیدي والټ ذخیره ښکاره شوه - جلا محصولات چې په DBMS کې کلیدي مدیریت چمتو کوي اړخ

امنیت او DBMS: هغه څه چې تاسو اړتیا لرئ په یاد ولرئ کله چې د امنیت وسیلې غوره کړئ
په MongoDB کې د ورته کوډ کولو یوه بیلګه

په تجارتي او خلاصې سرچینې DBMS کې امنیتي ځانګړتیاوې

دندې
ډول
د پټنوم پالیسي
پلټنه
د پروسیجرونو او دندو د سرچینې کوډ ساتل
RLS
د کوډونې

سينه_پوښ
سوداګریز
+
+
+
+
+

MsSql
سوداګریز
+
+
+
+
+

جتوبا
سوداګریز
+
+
+
+
پراخونې

پوسټری ایس ایس ایل
د ازادو
پراخونې
پراخونې
-
+
پراخونې

MongoDb
د ازادو
-
+
-
-
یوازې په MongoDB Enterprise کې شتون لري

جدول له بشپړیدو څخه لرې دی ، مګر وضعیت دا دی: په سوداګریزو محصولاتو کې ، امنیتي ستونزې د اوږدې مودې لپاره حل شوي ، په خلاصې سرچینې کې ، د یوې قاعدې په توګه ، د امنیت لپاره یو ډول اضافه کول کارول کیږي ، ډیری دندې ورکې دي. ، ځینې وختونه تاسو باید یو څه اضافه کړئ. د مثال په توګه، د پټنوم پالیسۍ - PostgreSQL ډیری مختلف توسیعونه لري (1, 2, 3, 4, 5)، کوم چې د پټنوم پالیسي پلي کوي، مګر، زما په اند، هیڅ یو د کورني کارپوریټ برخې ټولې اړتیاوې نه پوښي.

څه وکړئ که چیرې تاسو هغه څه نلرئ چې تاسو ورته اړتیا لرئ؟ د مثال په توګه، تاسو غواړئ یو ځانګړی DBMS وکاروئ چې هغه دندې نلري چې پیرودونکي ورته اړتیا لري.

بیا تاسو کولی شئ د دریمې ډلې حلونه وکاروئ چې د مختلف DBMSs سره کار کوي ، د مثال په توګه ، کریپټو DB یا Garda DB. که موږ د کورنۍ برخې څخه د حلونو په اړه خبرې کوو، نو دوی د خلاصې سرچینې په پرتله د GOSTs په اړه ښه پوهیږي.

دوهم اختیار دا دی چې هغه څه ولیکئ چې تاسو ورته اړتیا لرئ ، د پروسې په کچه غوښتنلیک کې ډیټا لاسرسي او کوډ کول پلي کړئ. ریښتیا، دا به د GOST سره ډیر ستونزمن وي. مګر په عموم کې ، تاسو کولی شئ د اړتیا سره سم ډیټا پټ کړئ ، په DBMS کې یې واچوئ ، بیا یې ترلاسه کړئ او د اړتیا سره سم یې ډیکریټ کړئ ، د غوښتنلیک په کچه. په ورته وخت کې، سمدلاسه فکر وکړئ چې تاسو به څنګه په غوښتنلیک کې دا الګوریتمونه خوندي کړئ. زموږ په نظر، دا باید د DBMS په کچه ترسره شي، ځکه چې دا به چټک کار وکړي.

دا راپور په لومړي ځل وړاندې شو @ ډیټابیس ناسته د Mail.ru کلاوډ حلونو لخوا. وګوره видео نور پرفارمنسونه او په ټیلیګرام کې د پیښې اعلانونو کې ګډون وکړئ په Mail.ru ګروپ کې د Kubernetes شاوخوا.

په موضوع نور څه لوستل:

  1. د Ceph څخه ډیر: د MCS کلاوډ بلاک ذخیره.
  2. څنګه د پروژې لپاره ډیټابیس غوره کړئ نو تاسو اړتیا نلرئ بیا انتخاب کړئ.

سرچینه: www.habr.com

Add a comment