Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

लॉगिन नाम, डेटाबेस उपयोगकर्ता नाम, या sqlserver डोमेन उपयोगकर्ता की भूमिकाएं कैसे खोजें जिनके पास अपना लॉगिन नहीं है?

मैं समझता हूँ कि डोमेन उपयोगकर्ता लॉगिन AD समूह में मैप किया गया है?

आपको यह ध्यान रखना होगा कि उपयोगकर्ता कई AD समूहों में हो सकता है और उनमें से प्रत्येक को डेटाबेस में किसी तरह मैप किया जा सकता है जो थोड़ा गड़बड़ हो सकता है। इसके अलावा इसका मतलब है कि आपको कई परिणामों के साथ कुछ चाहिए :)

इसे आजमाएं:

select * from sys.server_principals where type_desc = 'WINDOWS_GROUP' and is_member(name) = 1

मुझे लगता है कि इसे सभी विंडोज़ समूह लॉगिनों को ठीक से पकड़ना चाहिए जो विशेष उपयोगकर्ताओं के साथ बंधे रहेंगे। उसके बाद आप डेटाबेस उपयोगकर्ताओं के लिए इसमें शामिल हो सकते हैं अर्थात:

Select u.name from YourDB.sys.syslogins l
inner join YourDB.sys.sysusers u
on l.sid = u.sid
where l.loginname = ANY (select * from sys.server_principals where type_desc = 'WINDOWS_GROUP' and is_member(name) = 1)

आपको यह ध्यान रखना होगा कि - हर तरह से - आपको एकल मानों के बजाय पूरे सेट को संभालने की आवश्यकता हो सकती है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अद्वितीय माता-पिता को बच्चे से जोड़ने के लिए क्वेरी की आवश्यकता है जो अद्वितीय नहीं है लेकिन MAX . के साथ अद्वितीय बनाया जा सकता है

  2. Azure SQL डेटाबेस में DTU क्या है और यह कैसे पता करें कि हमें कितनी आवश्यकता है

  3. SQL सर्वर में आसानी से मास्टर डेटाबेस को फिर से बनाने के तरीके

  4. OPENJSON "'के साथ' कीवर्ड के पास गलत सिंटैक्स।" SQL सर्वर में (हल किया गया)

  5. संग्रहीत प्रक्रिया में इनपुट पैरामीटर पास करने में सक्षम नहीं है