আমি দুটি নতুন এডি গ্রুপ তৈরি করেছি এবং তাদের একটি ডাটাবেসের ব্যবহারকারী হিসাবে যুক্ত করেছি তবে তারা একটি রেড এক্স দিয়ে দেখায় this এর অর্থ কী? ধন্যবাদ।
আমি দুটি নতুন এডি গ্রুপ তৈরি করেছি এবং তাদের একটি ডাটাবেসের ব্যবহারকারী হিসাবে যুক্ত করেছি তবে তারা একটি রেড এক্স দিয়ে দেখায় this এর অর্থ কী? ধন্যবাদ।
উত্তর:
এর অর্থ এই নয় যে ব্যবহারকারী অক্ষম (আপনি কেবলমাত্র লগইন অক্ষম করতে পারবেন ), এর অর্থ ব্যবহারকারীকে ডেটাবেজে সংযুক্ত সুবিধা নেই। আপনার ব্যবহারকারীরা কীভাবে তৈরি হয়েছিল তা আমি নিশ্চিত নই, তবে এটি প্রদর্শনের সহজতম উপায় হ'ল:
CREATE LOGIN u1 WITH PASSWORD = 'x', CHECK_POLICY = OFF;
GO
USE tempdb;
GO
CREATE USER u1 FROM LOGIN u1;
GO
ALTER LOGIN u1 DISABLE;
GO
-- u1 has no red x even though the login has been disabled
CREATE USER u2 WITHOUT LOGIN;
GO
-- check Object Explorer, u2 has no red x
DENY CONNECT TO u2;
GO
-- check Object Explorer, u2 now has a red x!
CREATE USER u3 WITHOUT LOGIN;
GO
-- check Object Explorer, u3 has no red x
REVOKE CONNECT FROM u3;
GO
-- check Object Explorer, u3 now has a red x!
(আপনার GO
কমান্ডগুলির মধ্যে অবজেক্ট এক্সপ্লোরার রিফ্রেশ করার প্রয়োজন হতে পারে কারণ, ভাল, ক্যাশিং)
এটির সমাধানের জন্য (ধরে নিচ্ছেন আপনি প্রকৃতপক্ষে চান যে তারা ডেটাবেসে সংযোগ করতে সক্ষম হবে):
GRANT CONNECT TO [DomainName\BI360Consultants];
GRANT CONNECT TO [DomainName\BI360Users];
ডাটাবেসে আপনাকে কী করতে সক্ষম হতে হবে তার উপর নির্ভর করে আপনাকে আরও অনুমতি প্রয়োগ করতে হবে।
এই অবস্থায় intoোকার আরও অনেক অস্পষ্ট উপায় থাকতে পারে (যেমন মাইকেলকের উত্তরে বর্ণিত, প্রকৃতপক্ষে কোনও ব্যবহারকারীকে যুক্ত না করেই একটি ডাটাবেসে কোনও ভূমিকাতে একটি ডোমেন গ্রুপ যুক্ত করা )। যদিও আমি সত্যবাদী হব, যখন আমি ওপি, পুরানো উপায় বা সঠিক উপায়ে যা করার চেষ্টা করেছি তখন আমি কোনও ব্যবহারকারীর উপস্থিতি ছাড়াই ডোমেন গোষ্ঠীকে কোনও ভূমিকার সাথে যুক্ত করতে সক্ষম হইনি:
-- the old way
EXEC sys.sp_addrolemember N'db_datareader', N'[CAKE\MyGroup]';
এমএসজি 15410, স্তর 11, রাজ্য 1, প্রক্রিয়া এসপি_ড্রোলেলেম্বার
ব্যবহারকারী বা ভূমিকা '[কেক \ মাইগ্রুপ]' এই ডাটাবেসে বিদ্যমান নেই।
-- the right way
ALTER ROLE db_datareader ADD MEMBER [CAKE\MyGroup];
এমএসজি 15151, স্তর 16, রাজ্য 1
প্রিন্সিপাল 'কেক \ মাইগ্রুপ' যোগ করতে পারে না, কারণ এটি বিদ্যমান নেই বা আপনার অনুমতি নেই।
অবশ্যই এই ফলাফলের সাথে আমি এরকম কোনও ব্যবহারকারীর sysusers
(প্রত্যাশিত; এটি ব্যবহার বন্ধ করুন) বা এগুলিকে দেখতে পাইনি sys.database_principals
। তবে, আমি যদি এটি করি ( সিপুপিকের উত্তরের জন্য ধন্যবাদ ):
GRANT SELECT ON dbo.SomeTable TO [CAKE\MyGroup];
তারপরে ব্যবহারকারী সেই দর্শনগুলিতে প্রদর্শিত হবে এবং রেড এক্সের কারণে অবজেক্ট এক্সপ্লোরারে ব্যবহারকারী হিসাবে দেখাবে HAS_DBACCESS() = 0
। যা এখনও প্রায় একই জিনিসটির সমান: "ডাটাবেস অ্যাক্সেস করতে পারে না।" সুতরাং উপরেরগুলি যদি GRANT CONNECT
কাজ না করে (আমার ক্ষেত্রে এটি রেড এক্স থেকে মুক্তি পেয়েছে তবে আমি সেই অ্যাকাউন্ট হিসাবে ডাটাবেসটিকে জিজ্ঞাসা করার চেষ্টা করিনি), এটি ব্যর্থ হতে পারে তা জেনেও নিম্নলিখিত ব্যবহার করে দেখুন:
CREATE USER [DOMAIN\Group] FROM LOGIN [DOMAIN\Group];
আমার ক্ষেত্রে, যখন আমি এই ব্যবহারকারীর সাথে সংযোগ প্রদান করেছি, এটি আমাকে CREATE USER
কমান্ডটি চালানো থেকে বিরত করেছে :
এমএসজি 15023, স্তর 16, রাজ্য 1, লাইন 16
ব্যবহারকারী, গোষ্ঠী, বা ভূমিকা 'কেক \ মাইগ্রুপ' ইতিমধ্যে বর্তমান ডাটাবেসে উপস্থিত রয়েছে।
এই সিস্টেমটি নির্দিষ্ট সিস্টেম ডাটাবেসে অতিথি অ্যাকাউন্ট ব্যতীত guest
/ INFORMATION_SCHEMA
/ sys
- এর জন্য সর্বদা সত্য হবে । এটি উপেক্ষা করুন এবং তাদের একা ছেড়ে যান।
থেকে বিষয় :sp_addrolemember
থেকে বিষয় :sys.sysusers
আমি এইটিকে নিয়মিত করে কেবল অ্যারন বার্ট্র্যান্ডের উত্তরে যুক্ত করতে চাই:
এর অর্থ হল যে ব্যবহারকারীর ডাটাবেসের সাথে সংযোগের সুবিধা নেই (আপনি ব্যবহারকারীদের অক্ষম করতে পারবেন না, কেবল লগইন করুন)। আপনার ব্যবহারকারীরা কীভাবে তৈরি হয়েছিল তা আমি নিশ্চিত নই ...
এটি Windows
কেবল নিম্নলিখিত উপায়ে প্রিন্সিপালদের সাথেই ঘটতে পারে :
Windows
লগইনটি সার্ভার স্তরে উপস্থিত থাকে তবে প্রশ্নযুক্ত ডাটাবেসে ম্যাপ করা হয় না, কেউ ডাটাবেস স্তরে এই উইন্ডোজ অধ্যক্ষকে grant
/ deny
কিছু অনুমতি নেওয়ার সিদ্ধান্ত নেন । এই ক্ষেত্রে সংশ্লিষ্ট ব্যবহারকারী / স্কিমা ডাটাবেসের মধ্যে তৈরি হবে এবং এই সঙ্গে সারি grant
/ deny
লেখা হবে sys.database_permissions
। এটি এই ডাটাবেসে কোনও অ্যাক্সেস দেবে না কারণ নতুন তৈরি করা ব্যবহারকারী এখনও connect
অনুমতিটি মিস করেন এবং আপনি এটি লাল তীরের সাহায্যে OE এ দেখতে পাবেন।
আমি মনে করি আমি কেন বুঝতে পেরেছি।
দৃশ্যপট:
ডোমেন \ BI360 ব্যবহারকারীরা একটি AD গ্রুপ
ডোমেন \ BI360 ব্যবহারকারীদের সার্ভারে লগইন হিসাবে যুক্ত করা হয় (এতে সংযোগের অনুমতি রয়েছে)
ডোমেন \ BI360 ব্যবহারকারীর ডাটাবেসের ব্যবহারকারী হিসাবে উপস্থিত নেই
আমি নিম্নলিখিতটি করি:
USE TEMPDB
GO
EXEC sp_addrolemember N'db_datareader', N'Doamin\BI360users'
GO
সাফল্যের সাথে সম্পূর্ণ হয়।
রিফ্রেশ: রেড 'এক্স' প্রদর্শিত হবে।
ব্যবহারকারী ডাটাবেসে ম্যাপ করা হয়নি:
আমি যদি এখন ব্যবহারকারী তৈরি করি:
USE TempDB
GO
CREATE USER [Domain\BI360Users] FOR LOGIN [DOMAIN\BI360Users]
GO
সুতরাং, এটি প্রদর্শিত হয় যে কোনও ব্যবহারকারী ছিল না যদিও স্ক্রিন শোটি উপরে এটি পরিষ্কারভাবে দেখিয়েছিল।
GRANT CONNECT
যেমন আমার মূল উত্তরটি বলেছে, সমস্যার সমাধান হওয়া উচিত ছিল।
রেড এক্স এর অর্থ লগইনগুলি এসকিউএল সার্ভারে ডাব্লু / অক্ষম করা আছে