db_owner ডাটাবেস ছাড়তে অক্ষম - ত্রুটি 615, এসকিউএল সার্ভার


11

আমার একটি এসকিউএল সার্ভার 2012 ডাটাবেসটি আমাজন ইসি 2 তে চলছে। আমি ডেটাবেস তৈরি, সম্পাদনা এবং ড্রপ করতে সক্ষম হতে একজন ব্যবহারকারী তৈরি করেছি। আমি নতুন ব্যবহারকারীকে dbcreatorসার্ভারের ভূমিকা দিয়েছি ।

আমার ব্যবহারকারী দূর থেকে সংযোগ করতে পারে এবং সফলভাবে create database foo;কমান্ড চালায় । কিন্তু যখন ব্যবহারকারীটি drop database foo;নিম্নলিখিত ত্রুটিটি দিয়ে কমান্ডটি দিয়ে ডাটাবেসটি আবার ফেলে দেওয়ার চেষ্টা করে :

Warning: Fatal error 615 occurred at Feb  1 2014  5:15PM.
   Note the error and time, and contact your system administrator.
ErrorCode: 21

যদিও নির্বাচিত ডাটাবেসটি master(তাই আমি এটি ব্যবহার করার কারণে এটি মনে করি না)। প্রশাসনিক ব্যবহারকারীরূপে আবার লগ ইন করার পরে কমান্ডটি সফল হয়।

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

এখানে চিত্র বর্ণনা লিখুন

Http://technet.microsoft.com/en-us/library/ms178613.aspx এর মতে db_owner এর ভূমিকা যথেষ্ট অনুমতি থাকা উচিত। "ডাটাবেসে কনট্রোলের অনুমতি প্রয়োজন, বা কোনও ডেটাবেসের অনুমতি বা db_owner স্থির ডাটাবেসের ভূমিকাতে সদস্যতা প্রয়োজন।"

আমি ত্রুটি 615 দেখেছি এবং খুঁজে পেয়েছি "ডাটাবেস টেবিল আইডি% d, নাম '%। * এলএস' খুঁজে পাওয়া যায়নি।" যা আমার কাছে কোন মানে করে না। http://technet.microsoft.com/en-us/library/aa937592(v=sql.80).aspx

SQL সার্ভার সংস্করণ তথ্য: Microsoft SQL Server 2012 (SP1) - 11.0.3368.0 (X64) /n May 22 2013 17:10:44 /n Copyright (c) Microsoft Corporation/n Express Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)/n- থেকে select @@version

উত্তর:


12

আমি অনুমান করতে পারি যে আপনার কাছে ডেটাবেস ট্রুতে সেট করার জন্য অটোক্লোজ বিকল্প রয়েছে। আপনি এক্সপ্রেস সংস্করণ দিয়ে ডেটাবেস তৈরি করার সময় এটি ডিফল্ট আচরণ।

উল্লিখিত ত্রুটি এক্ষেত্রে ঠিক ঘটতে পারে। প্রকৃতপক্ষে সম্পূর্ণ ত্রুটি বার্তা 615 বলেছে: "Could not find database ID %d, name '%.*ls'. The database may be offline. Wait a few minutes and try again."... সুতরাং এটি নির্দেশ করে যে ডাটাবেস ড্রপ করার সময় বন্ধ করা যেতে পারে।

সুতরাং, ডিবি বৈশিষ্ট্যগুলিতে যান, এটি মিথ্যাতে স্যুইচ করুন এবং আবার এটিকে ফেলে দেওয়ার চেষ্টা করুন বা নামার আগে স্ক্রিপ্টের নীচে ব্যবহার করুন

ALTER DATABASE [MyDB] SET AUTO_CLOSE OFF 
GO

অনেকের মধ্যে এটি উল্লেখ করা যায় যে অটোক্লোজকে মিথ্যাতে সেট করা ভাল। আমি এই নিবন্ধটি অটোক্লোজ সম্পর্কে আরও কিছুটা ব্যাখ্যা করে দেখতে পেয়েছি: http://sqlmag.com/blog/worst-p ੈਕਟ-allowing-autoclose-sql-server-databases

উত্তরের ছোট এক্সটেনশন:

-- this works in standard SQL Server Editions, but NOT with Express Editions:
CREATE DATABASE [MyDB]
GO
DROP DATABASE [MyDB]
GO

-- this works in ALL SQL Server Editions
CREATE DATABASE [MyDB]
GO
ALTER DATABASE [MyDB] SET AUTO_CLOSE OFF 
GO
DROP DATABASE [MyDB]
GO

2

আপনি যে কনফিগারেশনটি বর্ণনা করেছেন তা ঠিক হওয়া উচিত।

আপনি কি অন্য ব্যবহারকারী হিসাবে ডাটাবেসটি ফেলে দেওয়ার চেষ্টা করছেন?

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


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

2
@ টিম: হ্যাঁ, 20 স্তরের ত্রুটিগুলি এবং উচ্চতর সংযোগটি ড্রপ করে, এটি কেবল একটি লক্ষণ। এসকিউএল সার্ভার ত্রুটি লগ বা অ্যাপ্লিকেশন ইভেন্ট লগ আরও কোনও তথ্য দেয়?
জন সেগেল

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

0

আমি এর কারণটি খুঁজে পাই নি, তবে নিম্নলিখিতগুলির চেয়ে ভাল সমাধান কমান্ড সক্ষম করে না।

এটি আমার আশা যে এটি সমস্যার দিকে ইঙ্গিত করে এবং কেউ আরও ভাল উত্তর দিতে পারে।

আমি লোকালহোস্ট সুরক্ষা লগইনের অধীনে মাইক্রোসফ্ট এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও (প্রশাসক) ব্যবহার করি

ব্যবহারকারীদের ডাবল ক্লিক করুন, সার্ভার রোলগুলি নির্বাচন করুন, ডিবিক্রিটর, পাবলিক এবং সিসাদেম দিন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.