मुझे यकीन नहीं है कि मैंने इस सवाल के लिए सही शीर्षक चुना है। मैं वास्तव में उसके बाद क्या कर रहा हूं, एक व्यक्तिगत विंडो AD उपयोगकर्ता को दी गई है, मैं उन विंडोज़ AD समूहों (लॉगिन) की सूची का पता लगाना चाहूंगा जिनके पास इस सर्वर में एक विशिष्ट डेटाबेस तक पहुंच है
जब मैं निम्नलिखित प्रश्न चलाता हूं
select
name,
principal_id,
type,
type_desc,
default_schema_name,
create_date,
modify_date,
owning_principal_id,
sid,
is_fixed_role
from sys.database_principals
मेरे सर्वर में
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) जून 17 2011 00:54:03 कॉपीराइट (c) Microsoft NT मानक संस्करण (64-बिट) Windows NT 6.1 पर (बिल्ड 7601: सर्विस पैक 1)
मुझे निम्नलिखित परिणाम मिले (आंशिक सूची):
मुझे उन सभी अनुमतियों को जानना होगा जो किसी विशेष लॉगिन की हैं। इस लॉगिन में AD समूहों के माध्यम से मेरे सर्वर / डेटाबेस तक पहुँच है।
1) उपरोक्त सूची में से AD समूह, मेरा लॉगिन किससे संबंधित है?
मैं यह कर रहा हूं, नीचे, लेकिन मैं वास्तव में विज्ञापन समूहों की सूची (जो उपरोक्त चित्र के अनुसार इस सर्वर तक पहुंच है) का पता लगाना चाहेंगे।
पहले मैं प्रश्न में उपयोगकर्ता के रूप में निष्पादित करता हूं
EXECUTE AS LOGIN='mycompany\HThorne'
DECLARE @User VARCHAR(20)
SELECT @USER = SUBSTRING(SUSER_SNAME(),
CHARINDEX('\', SUSER_SNAME()) + 1, LEN(SUSER_SNAME()))
मुझे यकीन है कि मेरे पास सही साख है
SELECT @USER
, SUSER_SNAME()
,SYSTEM_USER
, USER_NAME()
, CURRENT_USER
, ORIGINAL_LOGIN()
, USER
,SESSION_USER
मैं विशिष्ट डेटाबेस पर जाता हूं और fn_my_permissions का उपयोग करता हूं - प्रश्न में उपयोगकर्ता के रूप में चलता हूं
use WebDataImportStage
go
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
GO
REVERT
और वह मुझे नीचे परिणाम दे रहा है: