প্রয়োগে অ্যাজুর এসকিউএল ডেটাবেস "ব্যবহারকারীর জন্য লগইন ব্যর্থ হয়েছে", তবে এসএসএমএসে দুর্দান্ত কাজ করে works


14

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

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

CREATE USER classifier WITH PASSWORD='thepassword'

আমি এই ব্যবহারকারীর ডেটা লেখক এবং পাঠকের ভূমিকাতে যুক্ত করেছি:

exec sp_addrolemember 'db_datawriter', 'classifier'
exec sp_addrolemember 'db_datareader', 'classifier'

এর পরে, আমি এসএসএমএস থেকে এই শংসাপত্রগুলির সাথে ডাটাবেসে সংযোগ করতে সক্ষম হয়েছি:

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

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

<add name="Classifier" connectionString="Data Source=xxxxxxx.database.secure.windows.net;Initial Catalog=Classifier;User ID=classifier;Password=xxxxxxxxxxxxx;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" providerName="System.Data.SqlClient"/>

আমি ব্যবহারকারীর জন্য পাসওয়ার্ড (এসএসএমএসের মাধ্যমে) পুনরায় সেট করার এবং তারপরে সংযোগের স্ট্রিং আপডেট করার চেষ্টা করেছি; আমি পাসওয়ার্ডটি ঠিক এই সংযোগের স্ট্রিংয়ের বাইরে এবং এসএসএমএসের সংযুক্ত কথোপকথনে অনুলিপি করে ডাবল-চেক করেছিলাম যাতে আমার কোনও টাইপের টাইপ না রয়েছে তা নিশ্চিত করতে।

কেন এটি ব্যর্থ হচ্ছে সে সম্পর্কে কিছু বিশদ পাওয়ার আশায় আমি আজুর ডিবি সার্ভারে নিরীক্ষণ সক্ষম করেছিলাম তবে আমি যা পাই তা হ'ল:

18456 এরর, স্তর 14, স্টেট 1, সেভার এসকিউএল অ্যাজুরি, লাইন 1 লোগিন ব্যবহারকারীর 'শ্রেণিবদ্ধ' এর জন্য ব্যর্থ হয়েছে

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

এসএসএমএস (এবং লিনকপ্যাড এবং ভিজ্যুয়াল স্টুডিও সার্ভার এক্সপ্লোরার, ঘটনাক্রমে) সফল হয় সেখানে অ্যাপ্লিকেশনটি ব্যর্থ হওয়ার কারণ কী হতে পারে?

উত্তর:


15

আমরা দেখেছি যে ধারণকৃত ডাটাবেস / ধারণকৃত ব্যবহারকারীদের সাথে আপনাকে অবশ্যই উল্লেখ করতে হবে:

GRANT CONNECT TO [YOUR_USER]

অন্যথায় CONNECTডিফল্টরূপে প্রত্যাহার করা হবে বলে মনে হচ্ছে। একবার আমরা উপরের পরিবর্তনটি করার পরে, আমরা ডাটাবেস অ্যাক্সেস করতে পারি।


আমাদের একটি বিদ্যমান অ্যাকাউন্ট ছিল যা কাজ করছিল এবং তারপরে কাজ করা বন্ধ করে দেয়। আমাকে এর সাথে আবার সংযোগ দিতে হয়েছিল।
শেন কোর্ট্রিল

অ্যাজুরে, আমি Cannot find the user 'myuser', because it does not exist or you do not have permission.সুরক্ষা> লগইনস এর অধীনে ব্যবহারকারীর নাম উপস্থিত থাকলেও মাইডাটাবেস> সুরক্ষা> ব্যবহারকারীগণের মধ্যে ত্রুটি পাচ্ছি। আমি চেষ্টা করেছি CREATE USER [myuser] FOR LOGIN [myuser] WITH DEFAULT_SCHEMA=[mydb] GOকিন্তু ত্রুটি পেয়েছিThe login already has an account under a different user name.
Korayem

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

@ ডিজেসো আমিও একই ধরণের সমস্যার মুখোমুখি হয়েছি। আমার ADO.NET এবং EF (DBContext) কোড স্থানীয় মেশিনে সূক্ষ্মভাবে কাজ করে (অ্যাজুরে চেষ্টা করেনি) তবে আইডেন্টিটিবিবিএনেক্সট ব্যবহার করে কার্যকর করা EF কোড ব্যর্থ হয়। আমি নিশ্চিত না কী কী হয়েছে বা আইডেন্টিটি ডিবিসোনেক্সট এর বৈশিষ্ট্যগুলির জন্য সার্ভারে অ্যাক্সেস প্রয়োজন। আমার মূল প্রশ্নটি এখানে স্ট্যাকওভারফ্লো.com
হিরেন দেশাই

5

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

Persist Security Info=True;

কেন এই পরিবর্তনটির প্রয়োজন হয়েছিল তা আমি বুঝতে পারি না, যদিও ভবিষ্যতে এটি অন্য কাউকে সাহায্য করার ক্ষেত্রে আমি এখানে পোস্ট করতে চেয়েছিলাম।

আমরা মূলত এই প্রশ্নটি থেকে এটি চেষ্টা করতে এসেছি ।


2

আমার সমস্যাটি ভিন্ন ছিল, তবে সম্পর্কিত: আমি একটি অন্তর্ভুক্ত ব্যবহারকারীর সাথে এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও (এসএসএমএস) ব্যবহার করে একটি অ্যাজুর এসকিউএল ডাটাবেসের সাথে সংযোগ দেওয়ার চেষ্টা করছিলাম । আমি এসএসএমএসে "ব্যবহারকারীর জন্য লগইন ব্যর্থ" বার্তা পাচ্ছিলাম।

সমাধান: ক্যোরি উইন্ডোয়ের জন্য এসএসএমএস সংযোগ বিকল্পগুলিতে আমি যে ডাটাবেসটিতে সংযোগের চেষ্টা করছি তার নামে "কানেক্ট টু ডেটাবেস" সেট করেছিলাম।

ব্যাখ্যা: অন্ধত্বের কারণটি সুস্পষ্ট ছিল: ধারণকৃত ব্যবহারকারীদের কেবলমাত্র সেই ডেটাবেস (সংস্থাগুলি) -এ সংযোগ করার অনুমতি দেওয়া হয়েছে যেখানে তারা তৈরি হয়েছিল।


নিচে ভোট বোঝাতে যত্ন?
ভিন্স হোর্স্ট

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

0

আপনার পাসওয়ার্ড থাকা অবস্থায় একটি সংযোগ স্ট্রিং সমন্বিত পাওয়ারশেল কমান্ড চালানো হলে এটি ঘটতে পারে $। একক উদ্ধৃতি দিয়ে সংযোগের স্ট্রিংটি আবদ্ধ করে - বা সংযোগের স্ট্রিংয়ে আপনার পাসওয়ার্ডটি প্রথম স্থানে সংরক্ষণ না করে আপনি এগুলি পেতে পারেন ;-)

যেমন। আমি Scaffold-DbContextকমান্ড দিয়ে দৌড়ে গেলাম

https://github.com/aspnet/EntityFrameworkCore/issues/6624

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