ওরাকলে পিএল / এসকিউএল কাজ করা অ্যাপ্লিকেশন বিকাশকারীদের জন্য সুরক্ষা


13

কীভাবে আপনি ওরাকলে স্কিমার স্তরের সুযোগ-সুবিধার অভাব পরিচালনা করবেন? ওরাকলের সুরক্ষা আর্কিটেকচারটি এমন অ্যাপ্লিকেশনগুলির জন্য ভাল কাজ করে যেগুলি কেবলমাত্র বস্তুর স্তরের সুবিধাগুলির প্রয়োজন এবং এটি ডিবিএগুলির জন্য ভাল কাজ করে যাতে কয়েকটি বিধিনিষেধের প্রয়োজন হয়। যাইহোক, একাধিক স্কিমাতে ফ্রন্ট এন্ড অ্যাপ্লিকেশন এবং পিএল / এসকিউএল সহ প্রোগ্রামাররা বিকাশকারী আর্কিটেকচারে একটি বড় ব্যবধান গর্ত বলে মনে হচ্ছে। এখানে তাদের ডাউনসাইড সহ আমার কয়েকটি বিকল্প রয়েছে:

  1. প্রতিটি প্রোগ্রামারকে তাদের নিজস্ব স্কিমে ডেভলপমেন্ট করুন। ডিবিএ তাদের প্রয়োজনীয় প্রোগ্রামারদেরকে অবজেক্ট স্তরের সুবিধা দেবে। যে কোনও প্যাকেজ বিকাশ অবশ্যই ডিবিএ দ্বারা করা উচিত। প্রধান ক্ষতিটি হ'ল প্রোগ্রামাররা ডাটাবেস কার্যকারিতার ক্ষতির জন্য একটি বিট বালতির মতো ডাটাবেস ব্যবহার করবে। আমি চাই প্রোগ্রামাররা ডাটাবেসে বিকাশ ঘটুক, তবে এই পদ্ধতিটি এটিকে ব্যাপকভাবে নিরুৎসাহিত করবে।

  2. প্রতিটি প্রোগ্রামারকে ডজন বা তার জন্য স্কিমার জন্য তাদের ব্যবহারকারীর নাম / পাসওয়ার্ড দিন procedures খুব শীঘ্রই তাদের হিসাবে লগ ইন। ক্রস স্কিমা বিকাশও কঠিন।

  3. প্রোগ্রামারদের প্রক্সি প্রমাণীকরণের জন্য প্রতিটি স্কিমা অনুমোদনের জন্য তাদের উন্নতি করতে হবে Grant প্রক্সি সুবিধাগুলি ব্যতীত অন্য কোনও সুযোগ সুবিধা না দিয়ে এগুলি তাদের নিজেদের হিসাবে লগইন করে। অসুবিধাগুলির মধ্যে রয়েছে প্রোগ্রামাররা প্রতিটি স্কীমার জন্য পৃথক সংযোগ বজায় রাখতে হবে যার জন্য তারা প্রক্সি করে, ক্রস স্কিমা বিকাশ আরও জটিল umbers

  4. প্রতিটি প্রোগ্রামারকে ডিবিএ সুবিধা দিন। - এখানে নেতিবাচক দিকটি সুরক্ষা। কোনও স্কিমা প্রোগ্রামারকে কোনও স্কিমা থেকে দূরে রাখা যায় না এবং যে কোনও প্রোগ্রামার অন্য কোনও প্রোগ্রামার (ডিবিএ) নকল করতে পারে can

প্রতিটি প্রোগ্রামার নির্বাচন / অন্তর্ভুক্ত / তৈরি / ইত্যাদি প্রদানের জন্য অনুপস্থিত বিকল্প রয়েছে বলে মনে হচ্ছে। স্কিমার জন্য তাদের সুবিধাগুলি বিকাশ করতে হবে one একটি সংযোগ ব্যবহার করে তারা তাদের কাজ করতে নিজের হিসাবে লগইন করে। তাদের যে স্কিমায় অ্যাক্সেস রয়েছে সেগুলিতে নতুন অবজেক্টগুলি অবিলম্বে উপলব্ধ।

আমি কিছু অনুপস্থিত করছি? আপনি পিএল / এসকিউএল বিকাশকারী অ্যাপ্লিকেশন প্রোগ্রামারগুলিকে কীভাবে পরিচালনা করবেন?


3
+1 দুর্দান্ত প্রশ্ন - এটি, একীভূত উত্স নিয়ন্ত্রণের অভাবের সাথে একত্রে, বহু-বিকাশকারী পরিবেশে ওরাকলের একটি বড় সমস্যা।
স্কটচের

উত্তর:


11

আমি যখন ওরাকল শপটিতে কাজ করেছি, সেই দিনগুলিতে, আমাদের একটি নির্দিষ্ট 'দেব' (বিকাশ) সার্ভার ছিল, যার 'প্রোপ' (উত্পাদন) সার্ভারের চেয়ে আলাদা সুরক্ষা বিধিনিষেধ ছিল। বিকাশকারীরা তাদের যা কিছু প্রয়োজন তা করতে পারে এবং তারপরে আমরা প্রোডাকশন সার্ভারে প্রয়োগ করার জন্য প্রয়োজনীয় স্ক্রিপ্টগুলি ডিবিএর কাছে হস্তান্তর করব।

আমাদের সমালোচনামূলক সিস্টেমগুলির ক্ষেত্রে (এসসিটি ব্যানার, ট্র্যাকিং ক্লাস ও শিক্ষার্থীদের জন্য এবং ওরাকল ফিনান্সিয়েন্স), সেখানে 'পরীক্ষা' এবং 'বীজ' সার্ভারও ছিল। ডেভ থেকে প্রোডে স্থানান্তরিত করার আগে পরীক্ষাটি ব্যবহারকারী গ্রহণযোগ্যতা পরীক্ষার জন্য ছিল; 'বীজ' সফ্টওয়্যারটির স্টক ইনস্টল ছিল, সুতরাং আমাদের কী একটি বাগ পাওয়া উচিত, এটি আমরা এসসিটি বা ওরাকল এর সফ্টওয়্যার থেকে প্রবর্তন করেছি বা এসেছি কিনা তা যাচাই করতে পারি।


+1 আমাদের সাধারণ ব্যবহারের ডাটাবেসের সাথে, বিকাশকারীরা খুব বিবিধ প্রকল্পে কাজ করে, তাই ন্যূনতম সুযোগ-সুবিধার নীতিটি এমনকি ডেভলপমেন্ট সার্ভারেও তাদের সম্পূর্ণ অ্যাক্সেস দেয় না। ( en.wikedia.org/wiki/Pr اصولle_of_least_privilege )
লে রিফেল

@ লেইগ - আমার সম্ভবত স্পষ্ট করা উচিত ছিল ... দেব সার্ভারটি আপনার বেশিরভাগ অংশের জন্য # 1 এর মধ্যে পড়েছিল, # 4 নয়
জো

1
আমি মনে করি ডিইভি ডেটাবেসগুলি প্রোডাকশন থেকে ক্লোন করা হয়েছে, তারপরে বিকাশকারীদের সীমাবদ্ধতা ছাড়াই কাজ করতে সক্ষম করার জন্য জটিল অনুদান। শেষ পর্যন্ত প্রতিটি বিকাশকারীকে তাদের নিজস্ব ডেটাবেস এবং ডিবিএ অ্যাক্সেস দেওয়া সহজ ছিল। তারপরে একটি রিলিজ চক্রের মাধ্যমে দেবের পরিবর্তনগুলি ফিড করবে। ভার্চুয়ালাইজেশন সহ এখন আরও সহজ হওয়া উচিত।
সুমনিবোট

@ সোনামিবোট - রক্ষণাবেক্ষণ, ব্যাকআপ ইত্যাদির জন্য ইনস্টল করা সহজতর! প্রতিটি বিকাশকারীকে তাদের অনুমতি দেওয়ার চেয়ে আলাদা আলাদা ডেটাবেস!! এগুলির প্রতিটি আপ টু ডেট রাখার জন্য প্রয়োজনীয় সময় ছাড়াও মনে হবে লাইসেন্সিং খরচগুলি যথেষ্ট হবে বা আপনি এন্টারপ্রাইজ সংস্করণটি দেন নি?
লেইফ রিফেল

1
আমার জন্য একটি কংক্রিট উত্তর নেই।
মাইকেল-ও

3

অবজেক্টের সংগ্রহগুলি সংযুক্ত করতে ভূমিকাগুলি ব্যবহার করুন, তারপরে ভূমিকাগুলিতে অ্যাক্সেস মঞ্জুর করুন

GRANT বিবৃতি DBA অনুমতি দেয়:

ব্যবহারকারী, ভূমিকা এবং পাবলিকের কাছে কোনও নির্দিষ্ট অবজেক্টের জন্য অবজেক্ট সুবিধা। সারণী 18-2 বস্তুর সুবিধাগুলি এবং তারা অনুমোদিত অপারেশনগুলি তালিকাভুক্ত করে।

যেহেতু কোনও ভূমিকার জন্য অবজেক্টের সুবিধাগুলি মঞ্জুর করা যায়, তেমনি স্কিমাতে সমস্ত সারণীতে কোনও ভূমিকা অ্যাক্সেস দেওয়া তুলনামূলকভাবে সহজ:

sql> স্পুল privs.sql
sql> নির্বাচন করুন 'স্কট উপর অনুদান নির্বাচন করুন।' || টেবিল_নাম || ' to ভূমিকা_select; ' dba_tables থেকে যেখানে মালিক = 'এসসিটিটি';
SQL> @ privs.sql
এসকিউএল> জন, স্যাম, পিটারের ভূমিকা_নির্বাচন করুন;

এটি GRANT CREATE TABLEউপযুক্ত স্কিমা-ব্যবহারকারীর ভূমিকার সাথে ইস্যু করার সাথে মিলিত হওয়ার অর্থ হ'ল বিকাশকারীগণ সারণীগুলি নির্বাচন করতে এবং তৈরি করতে পারবেন। এটি নিখুঁত নয় কারণ তৈরি করা টেবিলটির জন্য আবার স্ক্রিপ্টটি চালানো দরকার তবে WITH GRANT OPTIONপ্রতিটি বিকাশকারী তারপরে উপযুক্ত ভূমিকার জন্য তৈরি করা সারণিতে অ্যাক্সেস দিতে পারে।

এটি সুপারিশ করে যে আপনি ডিডিএল স্তরের ট্রিগার তৈরি করতে পারেন যা যথাযথ মঞ্জুরিপ্রাপ্তির প্রক্রিয়া চালাতে পারে, যদিও উল্লেখযোগ্য পরিমাণে পরীক্ষার স্পষ্টতই প্রয়োজনীয় হবে, তৈরি টেবিলের বিবৃতিটি স্বয়ংক্রিয়ভাবে উপযুক্ত ভূমিকার জন্য যথাযথ অনুমতি প্রদান করা সম্ভব হবে should

সম্পাদনা করুন -

গ্রান্টের মতে , CREATE TABLEসুবিধাটি:

গ্রান্টির স্কিমে একটি টেবিল তৈরি করুন।

সুতরাং, তাদের সঠিক ব্যবহারকারীর থেকে টেবিল, পরিবর্তন টেবিল ইত্যাদি তৈরি করে, তাদের ব্যবহারকারীর স্কিমাটি অ্যাক্সেস করতে সক্ষম হওয়া উচিত যেন তারা উপযুক্ত ব্যবহারকারী।


আপনি উল্লেখ করেছেন যে পদ্ধতিটি আপনি খুব সাফল্য ছাড়াই চেষ্টা করেছেন; তবে আমি বিশ্বাস করি আপনি সঠিক যে এটি ব্যাপক পরীক্ষার মাধ্যমে করা যেতে পারে। সমস্যাটি হ'ল এটি কেবল বিকাশকারীদের টেবিলগুলিতে অ্যাক্সেস নির্বাচন করতে দেয়। সরাসরি বা কোনও ভূমিকার মাধ্যমে টেবিল তৈরির মঞ্জুরি দিলে কেবল তাদের নিজস্ব স্কিমে টেবিলের সুযোগ তৈরি হয়। তারা এখনও তাদের নিজস্ব ব্যতীত কোনও স্কিমে টেবিল, প্রক্রিয়া, প্যাকেজস, ট্রিগার বা অন্য কোনও সামগ্রী তৈরি করতে পারে না বা আপনার বক্তব্যটি কি তারা কেবল তাদের নিজস্ব স্কিমায় এমনকি বিকাশে এমনকি কোনও বস্তু তৈরি করা উচিত?
লেফ রিফেল

@ বিস্তারিত জানুন আপডেট করুন।
ব্রায়ান বলসুন-স্টান্টন

এটি ঠিক কিভাবে ওরাকল কাজ করে তা নয়। এটি ব্যবহার করে দেখুন: "এইআইএসএমই 1 পাসওয়ার্ড" দ্বারা চিহ্নিত ইউজার 1 তৈরি করুন; "এইআইএসএমই 1 পাসওয়ার্ড" দ্বারা চিহ্নিত ব্যবহারকারী ইউ 2 তৈরি করুন; ইউ 1 তে ডিবিএ প্রদান; অনুদান u2 সংযোগ; u1 / "এইআইএসএম 1 পাসওয়ার্ড" @ ডিবি সংযুক্ত করুন; u2 টেবিল তৈরি অনুদান; u2 / "এইআইএসএম 1 পাসওয়ার্ড" @ ডিবি সংযুক্ত করুন; টেবিল তৈরি করুন u1.t1 (c1 varchar2 (10)); শেষ পদক্ষেপটি অপর্যাপ্ত সুযোগ-সুবিধা দিয়ে ব্যর্থ।
লেফ রিফেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.