ฉันไม่แน่ใจว่าฉันเลือกชื่อที่ถูกต้องสำหรับคำถามนี้หรือไม่ สิ่งที่ฉันเป็นจริงหลังจากได้รับผู้ใช้โฆษณา windows แต่ละฉันต้องการค้นหารายชื่อกลุ่มโฆษณา windows (เข้าสู่ระบบ) ที่มีการเข้าถึงฐานข้อมูลเฉพาะในเซิร์ฟเวอร์นี้
เมื่อฉันเรียกใช้แบบสอบถามต่อไปนี้
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 Corporation Standard Edition (64 บิต) บน Windows NT 6.1 (รุ่น 7601: Service Pack 1)
ฉันได้รับผลลัพธ์ต่อไปนี้ (รายการบางส่วน):
ฉันจำเป็นต้องทราบสิทธิ์ทั้งหมดที่มีในการเข้าสู่ระบบโดยเฉพาะ การเข้าสู่ระบบนี้มีการเข้าถึงเซิร์ฟเวอร์ / ฐานข้อมูลของฉันผ่านกลุ่มโฆษณา
1) กลุ่มโฆษณาใดจากรายการด้านบนเข้าสู่ระบบของฉันอยู่หรือไม่
ฉันได้ทำสิ่งนี้ด้านล่าง แต่ฉันต้องการค้นหารายชื่อกลุ่มโฆษณา (ที่มีการเข้าถึงเซิร์ฟเวอร์นี้ตามภาพด้านบน) ที่ผู้ใช้รายนี้เป็นเจ้าของ
ก่อนอื่นฉันเรียกใช้งานในฐานะผู้ใช้ที่มีปัญหา
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
และนั่นคือการให้ผลลัพธ์ด้านล่าง: