Wir haben einen Benutzer, der geht, und ich muss jedes Datenbankobjekt kennen, das ihm gehört. Gibt es eine Abfrage, die diese Informationen bereitstellt?
16
Wir haben einen Benutzer, der geht, und ich muss jedes Datenbankobjekt kennen, das ihm gehört. Gibt es eine Abfrage, die diese Informationen bereitstellt?
Dies sollte Ihnen helfen, wonach Sie suchen:
;with objects_cte as
(
select
o.name,
o.type_desc,
case
when o.principal_id is null then s.principal_id
else o.principal_id
end as principal_id
from sys.objects o
inner join sys.schemas s
on o.schema_id = s.schema_id
where o.is_ms_shipped = 0
and o.type in ('U', 'FN', 'FS', 'FT', 'IF', 'P', 'PC', 'TA', 'TF', 'TR', 'V')
)
select
cte.name,
cte.type_desc,
dp.name
from objects_cte cte
inner join sys.database_principals dp
on cte.principal_id = dp.principal_id
where dp.name = 'YourUser';
Dadurch werden Objekte abgerufen, die Ihrem bestimmten Benutzer gehören ( 'YourUser'
natürlich als Ersatz ). Folgende Objekttypen werden von dieser Abfrage abgerufen:
So zeigen Sie alle Nicht-Sa-Datenbankbesitzer an:
Wenn Sie SQL-System-Jobbesitzer benötigen:
quelle