Nous avons un utilisateur qui part et j'ai besoin de connaître chaque objet de base de données qu'il possède. Y a-t-il une requête qui fournira ces informations?
16
Nous avons un utilisateur qui part et j'ai besoin de connaître chaque objet de base de données qu'il possède. Y a-t-il une requête qui fournira ces informations?
Cela devrait vous fournir ce que vous recherchez:
;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';
Cela obtiendra des objets qui appartiennent à votre utilisateur particulier (substitut 'YourUser'
bien sûr). Les types d'objets extraits par cette requête sont les suivants:
Pour afficher tous les propriétaires de bases de données non sa:
Si vous avez besoin de propriétaires de tâches système SQL:
la source
Pour les travaux, vous ne pouvez pas utiliser syslogins car le propriétaire peut faire partie d'un groupe et ne pas exister dans les connexions. Utilisez ce qui suit
la source