سؤال

عند تنفيذ مخطط مقارنة وجود حقوق DB_ONNER على قاعدة البيانات المستهدفة يؤدي إلى الخطأ التالي:

لا يتمتع المستخدم بإذن لإجراء هذا الإجراء.

باستخدام SQL Server Profiler I ، حدث هذا الخطأ يحدث تنفيذ استعلام يستهدف عرض DB الرئيسي: [SYS]. [dm_database_encryption_keys

بينما تجاهل جميع أنواع الكائنات على وجه التحديد ولكن الجداول يفترض المرء أن SQL مقارنة لا يحتاج إلى الوصول إلى مفاتيح تشفير DB. ملاحظة أيضا:

http://social.msdn.microsoft.com/forums/en-us/vstsdb/thread/c11a5f8a-b9cc-454f-ba77-e1c69141d64b/

يتمثل أحد الحلول في منح حالة عرض الخادم لمستخدم DB ، لكن في حالتي لا أستضيف خدمات قاعدة البيانات ولن أحصل على حقوق حالة الخادم.

حاول أيضًا استبعاد عنصر databaseencryptionkey في ملف المقارنة.

 <PropertyElementName>
    <Name>Microsoft.Data.Schema.Sql.SchemaModel.SqlServer.ISql100DatabaseEncryptionKey</Name>
    <Value>ExcludedType</Value>
 </PropertyElementName>

أي شخص لديه حل هذا؟

نحن نستخدم أدوات بيانات MS مقارنة للنشر من مشروع قاعدة البيانات إلى بيئة DTAP.

هل كانت مفيدة؟

المحلول

الحل الوحيد الناجح الذي وجدته هو نشر المخطط في قاعدة بيانات تطوير محلية ثم القيام بالمخطط مقارنة باستخدام قاعدة البيانات المحلية هذه كمصدر بدلاً من مشروع قاعدة البيانات.

الخطأ لا يزال يأتي في هذا الموقف ، ولكن Write Updates لم يعد زر تعطيل ويتم تحديثات المخطط كما هو متوقع.

نصائح أخرى

لماذا لا يمكنك تجربة أدوات مقارنة المخطط الأخرى (الخارجية)؟ تحقق من Red Gate's SQL مقارنة.

هل يجب أن تستخدم أدوات بيانات MS في VS 2008؟ أعتقد أنه يجب عليك تجربة أدوات خارجية مثل هذا:

SQLDBDIFF

هذه الأدوات الجميلة جدًا لمقارنة مخطط ديسيبل الخاص بك. كما يمكنك إنشاء البرنامج النصي لمزامنة المخطط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top