Je sais que nous pouvons vérifier les connexions et les utilisateurs qui sont définis, en utilisant l'interface graphique dans SQL Server, mais je me demande comment nous pouvons faire cette vérification en utilisant un script.
J'ai exécuté la requête ci-dessous mais elle montre Principal_id que je ne sais pas comment mapper pour obtenir le niveau d'autorisation.
SELECT * FROM Sys.login_token
Y a-t-il donc un proc stocké intégré qui peut répertorier les connexions et les utilisateurs avec leur niveau d'autorisation?
Je vous remercie.
Je ne sais pas s'il existe une méthode intégrée, mais essayez cette requête pour les principaux du serveur:
;with ServerPermsAndRoles as
(
select
spr.name as principal_name,
spr.type_desc as principal_type,
spm.permission_name collate SQL_Latin1_General_CP1_CI_AS as security_entity,
'permission' as security_type,
spm.state_desc
from sys.server_principals spr
inner join sys.server_permissions spm
on spr.principal_id = spm.grantee_principal_id
where spr.type in ('s', 'u')
union all
select
sp.name as principal_name,
sp.type_desc as principal_type,
spr.name as security_entity,
'role membership' as security_type,
null as state_desc
from sys.server_principals sp
inner join sys.server_role_members srm
on sp.principal_id = srm.member_principal_id
inner join sys.server_principals spr
on srm.role_principal_id = spr.principal_id
where sp.type in ('s', 'u')
)
select *
from ServerPermsAndRoles
order by principal_name
Fondamentalement, ce qu'il fait obtient les autorisations accordées et refusées et les associe au rôle d'appartenance. Il devrait vous donner un bref aperçu de la sécurité des connexions au serveur. Faites-moi savoir si c'est ce que vous recherchez.
Essayez celui-ci - cela répertoriera les utilisateurs, les objets et les autorisations dont ils disposent sur ces objets:
SELECT p.name, o.name, d.*
FROM sys.database_principals AS p
JOIN sys.database_permissions AS d ON d.grantee_principal_id = p.principal_id
JOIN sys.objects AS o ON o.object_id = d.major_id
Vous devriez également consulter la fonction sys.fn_my_permissions:
http://msdn.Microsoft.com/en-us/library/ms188367.aspx
Voici quelques liens qui devraient également vous aider:
AUTORISATIONS: http://msdn.Microsoft.com/en-us/library/ms191291.aspx
SYS.DATABASE_PERMISSIONS: http://msdn.Microsoft.com/en-us/library/ms188367.aspx
J'espère que ceci vous aide.