ফায়ারবেস সুরক্ষা বিধিগুলি পরিচালনা করুন এবং মোতায়েন করুন

ফায়ারবেস আপনাকে আপনার বিধিগুলি পরিচালনা করার জন্য বিভিন্ন সরঞ্জাম সরবরাহ করে, প্রত্যেকটি নির্দিষ্ট ক্ষেত্রে কার্যকর এবং প্রত্যেকটি একই ব্যাক-এন্ড ফায়ারবেস সুরক্ষা বিধিমালা পরিচালনা API ব্যবহার করে।

কোন সরঞ্জামটি আহ্বান জানাতে ব্যবহৃত হয় তা নয়, ম্যানেজমেন্ট এপিআই:

  • নিয়ম একটি সেট, সাধারণত একটি কোড ধারণকারী Firebase সিকিউরিটি রুলস বিবৃতি ফাইল: একটি বিধি উৎস Ingests।
  • দোকান একটি অপরিবর্তনীয় ruleset যেমন উৎস পাকস্থলিতে গ্রহণ।
  • মুক্তি প্রতিটি ruleset স্থাপনার অনুসরণ করে। সুরক্ষিত সংস্থার জন্য প্রতিটি অনুরোধকে মূল্যায়নের জন্য ফায়ারবেস সুরক্ষা বিধি-সক্ষম পরিষেবাদিগুলি কোনও প্রকল্পের জন্য রিলিজের সন্ধান করে।
  • একটি ruleset এর শব্দবিন্যাসগত ও শব্দার্থিক পরীক্ষা চালানোর সামর্থ্য প্রদান করে।

ফায়ারবেস সিএলআই ব্যবহার করুন

সঙ্গে Firebase CLI , স্থানীয় সূত্র ও প্রয়োগের রিলিজ আপলোড করতে পারেন। CLI এর Firebase স্থানীয় এমুলেটর সুইট আপনি উত্স সম্পূর্ণ স্থানীয় পরীক্ষামূলক সঞ্চালন করতে দেয়।

সিএলআই ব্যবহার করে আপনাকে আপনার অ্যাপ্লিকেশন কোড সহ আপনার বিধিগুলি সংস্করণ নিয়ন্ত্রণে রাখতে এবং আপনার বিদ্যমান স্থাপনার প্রক্রিয়ার অংশ হিসাবে নিয়ম মোতায়েনের অনুমতি দেয়।

একটি কনফিগারেশন ফাইল তৈরি করুন

আপনি যখন Firebase CLI ব্যবহার করে আপনার Firebase প্রকল্পের কনফিগার, আপনি একটি তৈরি .rules আপনার প্রকল্পের ডিরেক্টরির মধ্যে কনফিগারেশন ফাইল। আপনার ফায়ারবেস প্রকল্পটি কনফিগার করতে শুরু করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

ক্লাউড ফায়ার স্টোর

// Set up Firestore in your project directory, creates a .rules file
firebase init firestore

রিয়েলটাইম ডাটাবেস

// Set up Realtime Database in your project directory, creates a .rules file
firebase init database

মেঘ স্টোরেজ

// Set up Storage in your project directory, creates a .rules file
firebase init storage

আপনার বিধিগুলি সম্পাদনা করুন এবং আপডেট করুন

সরাসরি আপনার বিধিগুলি উৎস সম্পাদনা .rules কনফিগারেশন ফাইল। আপনি নিশ্চিত করুন যে ফায়ারবেস সিএলআই-এ আপনার করা কোনও সম্পাদনা ফায়ারবেস কনসোলে প্রতিফলিত হয়েছে বা আপনি ফায়ারবেস কনসোল বা ফায়ারবেস সিএলআই ব্যবহার করে ধারাবাহিকভাবে আপডেট করেন make অন্যথায়, আপনি ফায়ারবেস কনসোলে তৈরি কোনও আপডেট ওভাররাইট করতে পারেন।

আপনার আপডেট পরীক্ষা করুন

স্থানীয় এমুলেটর স্যুটটি সমস্ত সুরক্ষা বিধি-সক্ষম পণ্যগুলির জন্য এমুলেটর সরবরাহ করে। প্রতিটি এমুলেটরের জন্য সুরক্ষা বিধি ইঞ্জিনগুলি নিয়মের সিনট্যাকটিক এবং শব্দার্থক উভয় মূল্যায়ন করে, এইভাবে সুরক্ষা বিধি ব্যবস্থাপনার এপিআই অফারগুলির সিনট্যাকটিক পরীক্ষার চেয়ে বেশি।

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

আপনার আপডেট স্থাপন করুন

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

ক্লাউড ফায়ার স্টোর

// Deploy your .rules file
firebase deploy --only firestore:rules

রিয়েলটাইম ডাটাবেস

// Deploy your .rules file
firebase deploy --only database

মেঘ স্টোরেজ

// Deploy your .rules file
firebase deploy --only storage

ফায়ারবেস কনসোল ব্যবহার করুন

এছাড়াও আপনি সম্পাদন করা রুলস সূত্র করতে পারেন এবং তাদের Firebase কনসোল থেকে রিলিজ হিসাবে স্থাপন। অন্বিত পরীক্ষামূলক symantic পরীক্ষামূলক বিধি খেলার মাঠ ব্যবহার পাওয়া যায় যেমন Firebase কনসোল UI 'তে আপনি সম্পাদন করা সঞ্চালিত হয়, এবং।

আপনার বিধিগুলি সম্পাদনা করুন এবং আপডেট করুন

  1. খুলুন Firebase কনসোল এবং আপনার প্রকল্পের নির্বাচন করুন।
  2. তারপর, পণ্য নেভিগেশন থেকে রিয়েলটাইম ডাটাবেস, ক্লাউড Firestore বা স্টোরেজ নির্বাচন করুন, তারপর বিধি সম্পাদক নেভিগেট করতে রুলস ক্লিক করুন।
  3. আপনার নিয়মগুলি সরাসরি সম্পাদকে সম্পাদনা করুন।

আপনার আপডেট পরীক্ষা করুন

সম্পাদক UI 'তে সিনট্যাক্স পরীক্ষা ছাড়াও, আপনি, শব্দার্থিক বিধি আচরণ পরীক্ষা আপনার প্রকল্পের ডাটাবেস এবং স্টোরেজ সম্পদ ব্যবহার করে, Firebase কনসোলে সরাসরি ব্যবহার করতে পারেন বিধি খেলার মাঠ । বিধি সম্পাদকে বিধি খেলার মাঠ পর্দা খুলুন, সেটিংস পরিবর্তন করুন এবং রান এ ক্লিক করুন। সম্পাদকের শীর্ষে নিশ্চিতকরণ বার্তাটি সন্ধান করুন।

আপনার আপডেট স্থাপন করুন

একবার আপনি সন্তুষ্ট হলে আপনার আপডেটগুলি আপনি কি আশা আছে, ক্লিক করুন প্রকাশ করুন।

অ্যাডমিন এসডিকে ব্যবহার করুন

আপনি Node.js rulesets জন্য প্রশাসক SDK এর ব্যবহার করতে পারেন। এই প্রোগ্রাম্যাটিক অ্যাক্সেসের সাহায্যে আপনি:

  • নিয়ম পরিচালনার জন্য কাস্টম সরঞ্জাম, স্ক্রিপ্ট, ড্যাশবোর্ড এবং সিআই / সিডি পাইপলাইন প্রয়োগ করুন।
  • একাধিক ফায়ারবেস প্রকল্প জুড়ে নিয়মগুলি আরও সহজে পরিচালনা করুন।

প্রোগ্রামগুলি নিয়মে আপডেট করার সময়, আপনার অ্যাপ্লিকেশনটির অ্যাক্সেস নিয়ন্ত্রণে অনিচ্ছাকৃত পরিবর্তনগুলি এড়ানো উচিত। সুরক্ষার কথা মাথায় রেখে আপনার প্রশাসন এসডিকে কোডটি লিখুন, বিশেষত নিয়ম আপডেট করার সময় বা প্রয়োগ করার সময় when

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

এই সীমাগুলিও নোট করুন:

  • সিরিয়ালযুক্ত হওয়ার সময় নিয়মগুলি অবশ্যই ইউটিএফ -8 এনকোডযুক্ত পাঠ্যের 256 কিবি এর চেয়ে কম হতে হবে।
  • একটি প্রকল্পে সর্বাধিক 2500 টি মোতায়েন করা নিয়মকানুন থাকতে পারে। একবার এই সীমাটি পৌঁছে গেলে, নতুন তৈরি করার আগে আপনাকে অবশ্যই কিছু পুরানো রুলসেটগুলি মুছতে হবে।

ক্লাউড স্টোরেজ বা ক্লাউড ফায়ার স্টোর বিধি তৈরি করুন এবং মোতায়েন করুন

অ্যাডমিন এসডিকে দিয়ে সুরক্ষা বিধি পরিচালনার জন্য একটি সাধারণ ওয়ার্কফ্লোতে তিনটি পৃথক পদক্ষেপ অন্তর্ভুক্ত থাকতে পারে:

  1. একটি বিধি ফাইল উত্স তৈরি করুন (alচ্ছিক)
  2. একটি রুলসেট তৈরি করুন
  3. রিলিজ করুন বা মোতায়েন করুন, নতুন রুলসেটটি

ক্লাব স্টোরেজ এবং ক্লাউড ফায়ারস্টোর সুরক্ষা বিধিগুলির জন্য এই পদক্ষেপগুলিকে একক এপিআই কলের সাথে সংযুক্ত করার জন্য এসডিকে একটি পদ্ধতি সরবরাহ করে। উদাহরণ স্বরূপ:

    const source = `service cloud.firestore {
      match /databases/{database}/documents {
        match /carts/{cartID} {
          allow create: if request.auth != null && request.auth.uid == request.resource.data.ownerUID;
          allow read, update, delete: if request.auth != null && request.auth.uid == resource.data.ownerUID;
        }
      }
    }`;
    // Alternatively, load rules from a file
    // const fs = require('fs');
    // const source = fs.readFileSync('path/to/firestore.rules', 'utf8');

    await admin.securityRules().releaseFirestoreRulesetFromSource(source);

সঙ্গে ক্লাউড স্টোরেজ নিয়ম জন্য এই একই প্যাটার্ন কাজ releaseFirestoreRulesetFromSource()

বিকল্পভাবে, আপনি এই ইভেন্টগুলির নিবিড় নিয়ন্ত্রণের জন্য একটি মেমোরি অবজেক্ট হিসাবে নিয়ম ফাইল তৈরি করতে পারেন, রোলসেট তৈরি করতে পারেন এবং আলাদাভাবে নিয়মকোষ স্থাপন করতে পারেন। উদাহরণ স্বরূপ:

    const rf = admin.securityRules().createRulesFileFromSource('firestore.rules', source);
    const rs = await admin.securityRules().createRuleset(rf);
    await admin.securityRules().releaseFirestoreRuleset(rs);

রিয়েলটাইম ডেটাবেস রুলসেটগুলি আপডেট করুন

এডমিন SDK এর সঙ্গে রিয়েলটাইম ডাটাবেস rulesets আপডেট করতে, ব্যবহার getRules() এবং setRules() পদ্ধতি admin.database । আপনি JSON ফর্ম্যাটে রুলসেটগুলি পুনরুদ্ধার করতে পারেন, বা মন্তব্যগুলির সাথে স্ট্রিং হিসাবে অন্তর্ভুক্ত করতে পারেন।

একটি রুলসেট আপডেট করতে:

    const source = `{
      "rules": {
        "scores": {
          ".indexOn": "score",
          "$uid": {
            ".read": "$uid == auth.uid",
            ".write": "$uid == auth.uid"
          }
        }
      }
    }`;
    await admin.database().setRules(source);

রুলসেটগুলি পরিচালনা করুন

সাহায্যের বড় rulesets পরিচালনা করতে, এডমিন SDK এর আপনার সাথে সমস্ত বিদ্যমান নিয়ম তালিকা দেয় admin.securityRules().listRulesetMetadata । উদাহরণ স্বরূপ:

    const allRulesets = [];
    let pageToken = null;
    while (true) {
      const result = await admin.securityRules().listRulesetMetadata(pageToken: pageToken);
      allRulesets.push(...result.rulesets);
      pageToken = result.nextPageToken;
      if (!pageToken) {
        break;
      }
    }

সময়ের সাথে 2500 রোলসেট সীমাতে পৌঁছে যাওয়া খুব বড় মোতায়েনের জন্য, আপনি একটি নির্দিষ্ট সময় চক্রের পুরানো নিয়মগুলি মুছতে যুক্তি তৈরি করতে পারেন। উদাহরণস্বরূপ, বেশি 30 দিনের জন্য মোতায়েন সব rulesets মুছে ফেলতে:

    const thirtyDays = new Date(Date.now() - THIRTY_DAYS_IN_MILLIS);
    const promises = [];
    allRulesets.forEach((rs) => {
      if (new Date(rs.createTime) < thirtyDays) {
        promises.push(admin.securityRules().deleteRuleset(rs.name));
      }
    });
    await Promise.all(promises);
    console.log(`Deleted ${promises.length} rulesets.`);

REST এপিআই ব্যবহার করুন

উপরে বর্ণিত সরঞ্জামগুলি বিভিন্ন কর্মপ্রবাহের জন্য উপযুক্ত, তবে আপনি নিজে নিজে পরিচালনা API ব্যবহার করে ফায়ারবেস সুরক্ষা বিধিগুলি পরিচালনা এবং স্থাপন করতে চাইতে পারেন। পরিচালনা API আপনাকে সর্বাধিক নমনীয়তা দেয়।

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

এই সীমাগুলিও নোট করুন:

  • সিরিয়ালযুক্ত হওয়ার সময় নিয়মগুলি অবশ্যই ইউটিএফ -8 এনকোডযুক্ত পাঠ্যের 256 কিবি এর চেয়ে কম হতে হবে।
  • একটি প্রকল্পে সর্বাধিক 2500 টি মোতায়েন করা নিয়মকানুন থাকতে পারে। একবার এই সীমাটি পৌঁছে গেলে, নতুন তৈরি করার আগে আপনাকে অবশ্যই কিছু পুরানো রুলসেটগুলি মুছতে হবে।

REST সহ ক্লাউড স্টোরেজ বা ক্লাউড ফায়ারস্টোর রুলসেটগুলি তৈরি এবং মোতায়েন করুন

এই বিভাগের উদাহরণগুলি স্টোরেজ বিধিগুলি ব্যবহার করে, যদিও এটি ক্লাউড ফায়ারস্টোর বিধিগুলিতেও প্রযোজ্য।

উদাহরণগুলি এপিআই কলগুলি করতে সিআরএলও ব্যবহার করে। প্রমাণীকরণ টোকেন সেট আপ এবং পাস করার পদক্ষেপ বাদ দেওয়া হয়েছে। আপনি এই API 'API এক্সপ্লোরার সাথে একত্রিত ব্যবহার করে পরীক্ষা করতে পারেন রেফারেন্স ডকুমেন্টেশন

পরিচালনা API ব্যবহার করে কোনও রুলসেট তৈরি ও মোতায়েনের জন্য সাধারণ পদক্ষেপগুলি হ'ল:

  1. একটি বিধি ফাইল উত্স তৈরি করুন
  2. একটি রুলসেট তৈরি করুন
  3. নতুন রুলসেটটি প্রকাশ করুন (মোতায়েন করুন)

এর আপনি আপনার কাজ করছি জেনে নিই secure_commerce Firebase প্রকল্প এবং লক-ডাউন ক্লাউড স্টোরেজ বিধি স্থাপন করতে চাই। আপনি একটি এই নিয়ম বাস্তবায়ন করতে পারে storage.rules ফাইল।

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if false;
    }
  }
}

এখন, এই ফাইলটির জন্য একটি বেস 64-এনকোডেড আঙুলের ছাপ তৈরি করুন। এর পরে আপনি এই ফাইলের মধ্যে উৎস ব্যবহার পে লোড সঙ্গে একটি ruleset তৈরি করা প্রয়োজন পূরণ করতে পারবেন না projects.rulesets.create বিশ্রাম কল। এখানে, আমরা ব্যবহার cat সামগ্রীগুলি প্রবেশ করানোর জন্য কমান্ড storage.rules বিশ্রাম পে লোড করুন।

curl -X POST -d '{
  "source": {
    {
      "files": [
        {
          "content": "' $(cat storage.rules) '",
          "name": "storage.rules",
          "fingerprint": <sha fingerprint>
        }
      ]
    }
  }
}' 'https://firebaserules.googleapis.com/v1/projects/secure_commerce/rulesets'

এপিআই একটি বৈধ করণ এবং একটি ruleset নাম, উদাহরণস্বরূপ ফেরৎ projects/secure_commerce/rulesets/uuid123 । যদি রুলসেটটি বৈধ হয় তবে চূড়ান্ত পদক্ষেপটি হল একটি নাম প্রকাশিত নতুন রোলসেট স্থাপন করা।

curl -X POST -d '{
  "name": "projects/secure_commerce/releases/prod/v23   "  ,
  "rulesetName": "projects/secure_commerce/rulesets/uuid123",
}' 'https://firebaserules.googleapis.com/v1/projects/secure_commerce/releases'

REST সহ রিয়েলটাইম ডেটাবেস রুলসেটগুলি আপডেট করুন

রিয়েলটাইম ডেটাবেস নিয়মগুলি পরিচালনা করার জন্য নিজস্ব নিজস্ব REST ইন্টারফেস সরবরাহ করে। দেখুন বিশ্রাম মাধ্যমে ম্যানেজিং Firebase রিয়েলটাইম ডাটাবেস রুলস

REST সহ রুলসেটগুলি পরিচালনা করুন

বড় নিয়ম মোতায়েন পরিচালনা করতে সহায়তা করতে, রুলসেট এবং রিলিজ তৈরির জন্য একটি REST পদ্ধতি ছাড়াও, পরিচালন এপিআই নিম্নলিখিত পদ্ধতিগুলি সরবরাহ করে:

  • তালিকা, পেতে, এবং ডিলিট rulesets
  • তালিকা, পেতে, এবং ডিলিট নিয়ম রিলিজ

সময়ের সাথে 2500 রোলসেট সীমাতে পৌঁছে যাওয়া খুব বড় মোতায়েনের জন্য, আপনি একটি নির্দিষ্ট সময় চক্রের পুরানো নিয়মগুলি মুছতে যুক্তি তৈরি করতে পারেন। উদাহরণস্বরূপ, বেশি 30 দিনের জন্য মোতায়েন সব rulesets মুছে দিতে আপনি কল করতে পারেন projects.rulesets.list , পদ্ধতির তাদেরকে JSON তালিকা পার্স Ruleset তাদের বস্তু createTime কি, তারপর কল project.rulesets.delete দ্বারা সংশ্লিষ্ট rulesets উপর ruleset_id

আরআরটি দিয়ে আপনার আপডেটগুলি পরীক্ষা করুন

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

এপিআই এর এই উপাদানটির সাথে পরীক্ষার মধ্যে রয়েছে:

  1. একটি সংজ্ঞা TestSuite JSON বস্তু একটি সেট প্রতিনিধিত্ব করতে TestCase বস্তু
  2. জমা দেওয়া হচ্ছে TestSuite
  3. ফিরে পার্সিং TestResult বস্তু

এর একটি সংজ্ঞায়িত করা যাক TestSuite একটি একক সঙ্গে বস্তুর TestCase একটি testcase.json ফাইল। এই উদাহরণস্বরূপ, আমরা এই নিয়মগুলিতে চালনার জন্য টেস্ট স্যুইটের পাশাপাশি, আরআরএসটি পে-লোডের সাথে বিধিবিধানের উত্সটি ইনলাইন পাস করি। আমরা একটি বিধি মূল্যায়ন প্রত্যাশা নির্দিষ্ট করি এবং ক্লায়েন্টের অনুরোধ যার বিরুদ্ধে রুলসেটটি পরীক্ষা করা হয়। অনুরোধের সাথে মেলে না এমন অভিব্যক্তিগুলি সহ, সমস্ত বিধি ভাষার এক্সপ্রেশনগুলির জন্য ফলাফলগুলি নির্দেশ করতে "FULL" মানটি ব্যবহার করে পরীক্ষার প্রতিবেদনটি কীভাবে সম্পূর্ণ হয় তাও আপনি নির্দিষ্ট করতে পারেন।

 {
  "source":
  {
    "files":
    [
      {
        "name": "firestore.rules",
        "content": "service cloud.firestore {
          match /databases/{database}/documents {
            match /users/{userId}{
              allow read: if (request.auth.uid == userId);
            }
            function doc(subpath) {
              return get(/databases/$(database)/documents/$(subpath)).data;
            }
            function isAccountOwner(accountId) {
              return request.auth.uid == accountId 
                  || doc(/users/$(request.auth.uid)).accountId == accountId;
            }
            match /licenses/{accountId} {
              allow read: if isAccountOwner(accountId);
            }
          }
        }"
      }
    ]
  },
  "testSuite":
  {
    "testCases":
    [
      {
        "expectation": "ALLOW",
        "request": {
           "auth": {"uid": "123"},
           "path": "/databases/(default)/documents/licenses/abcd",
           "method": "get"},
        "functionMocks": [
            {
            "function": "get",
            "args": [{"exact_value": "/databases/(default)/documents/users/123"}],
            "result": {"value": {"data": {"accountId": "abcd"}}}
            }
          ]
      }
    ]
  }
}

আমরা তখন এই জমা দিতে পারেন TestSuite সঙ্গে evalution জন্য projects.test পদ্ধতি।

curl -X POST -d '{
    ' $(cat testcase.json) '
}' 'https://firebaserules.googleapis.com/v1/projects/secure_commerce/rulesets/uuid123:test'

ফিরে TestReport (টেস্ট SUCCESS টি / ব্যর্থতা অবস্থা, ডিবাগ বার্তা তালিকা, পরিদর্শন বিধি এক্সপ্রেশন এবং তাদের মূল্যায়ন রিপোর্ট তালিকা ধারণকারী) স্থিতির সাফল্যের সঙ্গে নিশ্চিত করবে এক্সেস সঠিকভাবে অনুমোদিত হয়।