"مرجع لم يتم حله إلى المستخدم" بعد الاستيراد كمشروع VS DB

dba.stackexchange https://dba.stackexchange.com/questions/107556

سؤال

لقد قمت للتو باستيراد قاعدة بيانات إنتاج SQL Server 2008r2 موجودة إلى مشروع قاعدة بيانات VS 2013.

أحصل الآن على عدد من الأخطاء على غرار

Error       SQL71501: User: [mydbuser] has an unresolved reference to Login [mydbuser].

لا أحتاج حقًا إلى مشروع VS DB الخاص بي لإدارة المستخدمين، ولكنني أشعر بالقلق من أنه سيحاول إزالتهم عند النشر إذا لم يكونوا هناك.

يتم إنشاء الملفات نفسها كـ

CREATE USER [mydbuser] FOR LOGIN [mydbuser];

أو

CREATE USER [mydomainuser] FOR LOGIN [MYDOMAIN\mydomainuser];

توضح علامة الخطأ أنها مخصصة لـ تسجيل الدخول.نظرًا لأن هذا كائن على مستوى النظام، فيمكنني أن أفهم أنه خارج نطاق مشروع قاعدة البيانات.

فهل يفضل أن أغيرهم جميعا إلى

CREATE USER [mydbuser] WITHOUT LOGIN;

أو إضافة CREATE LOGIN جملة إلى بداية كل ملف؟

يبدو أن إزالة مرجع تسجيل الدخول أسهل وستكون إزالة المستخدمين تمامًا هي الأسهل.

أريد التأكد من أنني أستخدم الأداة بالطريقة المقصودة.هل سيكون هناك أي مشاكل في إعادة نشر أي منها مرة أخرى إلى الإنتاج؟ما هو الإجراء المناسب لإضافة مستخدم/تسجيل الدخول عبر المشروع؟

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

المحلول

أسهل طريقة هي عدم إدارة المستخدمين من خلال ssdt (معظم الأشخاص لا يفعلون ذلك).لذا يمكنك فقط تجريدهم وعدم نشر عمليات تسجيل الدخول أو المستخدمين.

هناك ثلاث طرق:

  • الخيارات الجديدة لتجاهل المستخدمين/تسجيلات الدخول
  • اكتب مساهمًا في النشر لسحبهم
  • استخدم مساهم النشر الخاص بي http://agilesqlclub.Codeplex.com

إد

نصائح أخرى

كان عندي نفس المشكلة ووجدت هذا الرابط

لدى المستخدم إشارة لم يتم حلها لتسجيل الدخول

إذا قمت بإنشاء تسجيلات تسجيلات محددة للتطبيق (والتي يجب عليك) ، فسوف تصادف هذا الخطأ عند محاولة إنشاء الحل الخاص بك.لتصحيح هذا الخطأ ، حدد تشمل أنواع الكائنات "غير المغطاة بطلبات التطبيقات" في الخيارات (أيقونة الترس في الأعلى) عند القيام بمخطط مقارنة (انقر بزر الماوس الأيمن على مشروع قاعدة البيانات للعثور على مخطط مقارنة).يمكنك بعد ذلك استيراد تسجيل الدخول إلى مشروعك العادي ، ويتم فرز المراجع.ملحوظة:إذا قمت بالنقر فوق علامة تبويب أنواع الكائنات وأغلق مربع الحوار (الذي فعله بالنسبة لي) ، فاستخدم بدلاً من ذلك مفتاح TAB حتى يتم تسليط الضوء .الآن يجب أن تكون قادرًا على النقر فوق "موافق" ورؤية عمليات تسجيل الدخول.

من الواضح أن هذه المشكلة لا تزال تحدث في مشاريع قاعدة بيانات VS2017 أيضًا.

لقد تمكنت من حلها عن طريق إنشاء تسجيل الدخول أولاً ثم إنشاء المستخدم.

    -- Windows Account
    CREATE LOGIN [Domain\Username]
    FROM WINDOWS WITH DEFAULT_LANGUAGE = [us_english];

    GO

    CREATE USER [Domain\Username] FOR LOGIN [Domain\Username];
    GO

    -- Sql Acccount

    CREATE LOGIN [sql_account] WITH PASSWORD = 'Ch@ngeth1spA$swurD'
    GO

    CREATE USER [sql_account]
    FROM LOGIN [sql_account]
    WITH DEFAULT_SCHEMA = dbo

    GO


    -- Then set the sql file Build Action to "Build"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى dba.stackexchange
scroll top