Je vais obtenir la liste de tous les utilisateurs, y compris les utilisateurs Windows et 'sa', qui ont accès à une base de données particulière dans MS SQL Server. En fait, j'aimerais que la liste ressemble à ce qui est indiqué dans l'image suivante SQL Server Management Studio
(c'est-à-dire la liste qui s'affiche lorsque vous développez la rubrique [databse] -> Security -> Users
) à une exception près : Je ne veux pas voir le 'dbo'
dans la liste. J'aimerais plutôt voir l'utilisateur qui possède la base de données. Ainsi, par exemple, si 'sa' est l'utilisateur de la base de données. 'dbo'
, 'sa'
doit être inclus dans la liste au lieu de 'dbo'
. Une autre note à ne pas manquer est la liste figurant dans l'annexe. SQL Server Management Studio
affiche normalement les utilisateurs Windows en plus des utilisateurs SQL, et j'aimerais que ces utilisateurs soient également inclus.
Jusqu'à présent, j'ai pu formuler la requête suivante :
SELECT * FROM sys.database_principals where (type='S' or type = 'U')
Cette requête est presque correcte, mais le problème est qu'elle ne satisfait pas à l'exigence de 'dbo'
l'état.
Comment puis-je modifier cette requête ou dois-je en utiliser une autre ?