অপ্রয়োজনীয়তা যাচাই করার জন্য টেবিলগুলি বাদ না দিয়ে কীভাবে আড়াল / অক্ষম করবেন?


12

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

একই প্রভাব (টেবিলগুলি আর বাদ দেওয়া ছাড়া) আর অর্জন করার জন্য অন্য কোনও উপায় আছে কি? আমার ধারণা ছিল তাদের Deletedবর্তমান ডিফল্ট থেকে আলাদা স্কিমাতে (যেমন, ) স্থানান্তর করা dbo

IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'Deleted')
BEGIN
   EXEC('CREATE SCHEMA Deleted')
END

ALTER SCHEMA Deleted TRANSFER dbo.TableName;

অন্য কোনও বিকল্প আছে বা স্কিমার পদ্ধতির কোনও ত্রুটি আছে?

উত্তর:


7

এগুলি অর্জন না করে একই (টেবিলগুলি আর ব্যবহার করা যায় না) অন্য কোনও উপায় আছে?

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

আপনি আমার উত্তর থেকে পদক্ষেপগুলি এখানে অনুসরণ করতে পারেন

স্পষ্টতই অন্যান্য পদ্ধতি রয়েছে যেমন sp_rename ন'ল্ড টেবিল ', এন টেবিল' বা কেবল সারণির অনুমতি অস্বীকার করুন।


আমার কোন উত্তর মেনে নেওয়া উচিত তা আমি নিশ্চিত ছিলাম না কেননা সকলেই সহায়ক। আমি হারুনের নিবন্ধটি জানতাম না, সুতরাং এটি গ্রহণ করেছি কারণ এটিতে আরও তথ্য রয়েছে (এমনকি যদি এটি লিঙ্কযুক্তও থাকে)।
টিম শেমলেটার

@ টিমশ্মেলটার খুশি আপনি এটি দরকারী বলে মনে হয়েছে। নিবন্ধটি বা আমার উত্তর (সংযুক্ত) কী তা এখানে পুনরাবৃত্তি করার কোনও অর্থ নেই। আমি কেন এটি উল্লেখ করেছি তা।
কিন শাহ

12

অন্যান্য কয়েকটি বিকল্প হ'ল কেবল টেবিলগুলির নাম পরিবর্তন করা, বা যদি তাদের ক্লাস্টারযুক্ত সূচি থাকে তবে আপনি ক্লাস্টারড সূচকটি অক্ষম করতে পারেন।


ধন্যবাদ। আমি জানতাম না যে একটি ক্লাস্টারড ইনডেক্স অক্ষম করা টেবিলটিকে অকেজো করে তোলে। এই পদ্ধতির (+ স্কিমা) উপকারিতা এবং বিধিগুলি কী কী?
টিম শ্মেলটার

5
@ টিমশ্মেলটার সিআই নিষ্ক্রিয় করার একটি কন এটি হ'ল এটি আবার সক্ষম করার জন্য আপনাকে সূচকটি পুনর্নির্মাণ করতে হবে। অন্য একটি বিকল্প হ'ল জনগণের ভূমিকার জন্য টেবিলের অনুমতিগুলি অস্বীকার করা যদিও ডাটাবেস মালিক বা sys প্রশাসকরা এগুলি এখনও দেখতে পাবেন এবং সম্ভবত মালিকানা শৃঙ্খলার মাধ্যমেও।
মার্টিন স্মিথ

কোনও টেবিল ফেলে দেওয়ার আগে, বা কোনও টেবিল থেকে একটি কলাম ফেলে দেওয়ার আগে, আমি প্রায়শই নামটির শেষে "_drecated" বা এরকম কিছু যুক্ত করে এর নামকরণ করি। তারপরে যদি কোনও ত্রুটি না থেকে থাকে তবে অবশ্যই তা উল্লেখ করার কিছু নেই।
জে

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

6

ভূমিকা (গুলি) / গোষ্ঠী / গুলি / অ্যাকাউন্ট (গুলি) থেকে টেবিলের অনুমতিগুলি সরিয়ে ফেলুন যা [সম্ভবত] এটি ব্যবহার করছে।

যদি কোনও কিছু ফুরিয়ে যায় তবে সেগুলি [দ্রুত] ফিরিয়ে দিন।

ইঙ্গিত: এই পরিবর্তনগুলি করতে স্ক্রিপ্ট ব্যবহার করা সত্যিই সত্যই ভাল ধারণা হবে।


যেমন একটি উত্পাদনহীন ডাটাবেজে পরীক্ষা করা হবে। ;) আশা করি, এটি ওপি-র কাছে সুস্পষ্ট ছিল।
jpmc26

@ jpmc26। আমি প্রথমে একটি উত্পাদনহীন ডাটাবেসে পরীক্ষা করব। তবে সমস্যাটি হ'ল আমি জানতে চাই যে ফাংশনগুলি বা ডাটাবেস অবজেক্টগুলি বাইরে থেকে ব্যবহার করা হয় (কেবল ওয়েবসার্চ পদ্ধতি দ্বারা নয় তবে সরাসরি সংস্থার অন্যান্য অবস্থানের ডাটাবেস বা অ্যাডমিন সরঞ্জামগুলিতে)।
টিম শেমলেটার

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

@ জেএমপিসি 26: ঠিক আছে যদি সেই প্রশাসকরা তাদের মুখের মধ্যে পড়ে তবে তারা এটি রিপোর্ট করবেন। গ্রাহকদের সাথে ঠিক নেই, তবে এটি রোলআউটের আগে পরীক্ষা সিস্টেমে চেক করা যেতে পারে।
টিম শেমলেটার

3

অনুমতিগুলি সরিয়ে ফেলা সাধারণত কাজ করে না কারণ আপনি কারেন্টের অনুমতি না পেয়ে নিখুঁত হতে পারবেন না। সম্ভবত কোনও গোষ্ঠী, ভূমিকা বা এমনকি তারা সিসাদমিন হওয়ার কারণে (যদিও আশা করি না।

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

আপনার সেরা বাজিটি অবজেক্টটিকে একটি নতুন স্কিমাতে স্থানান্তরিত করতে চলেছে (যেমন আপনি প্রস্তাব করেছিলেন) বা অবজেক্টটির নামকরণ করুন। এই উভয় ক্রিয়াকলাপই করা এবং পূর্বাবস্থায় ফিরিয়ে নেওয়া উভয়ই দ্রুত এবং সহজ। অনুমতিগুলি উভয় দিকেই স্থানে থাকবে।

অতিরিক্ত পদক্ষেপ আপনি নিতে পারেন হ'ল অবজেক্টের বর্ধিত বৈশিষ্ট্যগুলিতে একটি "টিবিডি নোট" যুক্ত করা । আপনি কখন পরিবর্তন এনেছেন এবং / অথবা আপনার নিজের কাছে থাকা কোনও নোটগুলি কেন এটিকে পরিত্রাণ পেতে নিরাপদ বলে মনে করছেন সে সম্পর্কে আপনি একটি নোট তৈরি করতে পারেন।

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


3

ফিল ডাব্লু। এর পরামর্শ অনুসারে অনুমতিগুলি সরান।

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


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

আমি সঞ্চিত পদ্ধতিটি পরিবর্তনের পরামর্শ দিইনি, কেবল এটির এক্সিকিউটি অনুমতিটি সরিয়েছি। আপনি যেমন বলেছিলেন, প্রয়োজনে অনুমতিটি পুনরুদ্ধার করা সহজ। সঞ্চিত প্রক্রিয়া দ্বারা কী সারণীগুলি ব্যবহার করা হয় তা আপনি দেখতে পাবেন: এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিওতে অবজেক্ট এক্সপ্লোরার - আপনার ডাটাবেস -> প্রোগ্রামেবলিটি -> সঞ্চিত পদ্ধতি নির্বাচন করুন। কোনও স্প্রোক নামটিতে ডান ক্লিক করুন এবং নির্ভরতা দেখুন নির্বাচন করুন। যে বিষয়গুলিতে [স্প্রোক নাম] নির্ভর করে সেগুলি নির্বাচন করুন।
পিটার বিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.