Comment générer une table des autorisations accordées aux tables de base de données pour un utilisateur de base de données?

StackOverflow https://stackoverflow.com/questions/212681

  •  03-07-2019
  •  | 
  •  

Question

J'ai une base de données SQL Server 2000 avec une centaine de tables. Plusieurs comptes d'utilisateur SQL peuvent accéder à cette base de données, mais chacun dispose d'autorisations différentes accordées sur les tables de la base de données.

Comment créer un script pour me fournir un rapport sur les autorisations accordées à un utilisateur particulier. c'est-à-dire générer quelque chose comme:

Table      SELECT   DELETE   UPDATE    INSERT    ALTER
-----      ------   ------   ------    ------    -----
Invoices   Yes      No       Yes       Yes       No
Orders     Yes      Yes      Yes       Yes       No
Customers  Yes      No       Yes       Yes       No

et ainsi de suite. Nous sommes vendredi, mon SQL-fu est faible aujourd'hui et j'ai un million d'autres choses à faire avant de terminer ici aujourd'hui et si quelqu'un avait déjà un script pratique pour le faire, je vous en serais éternellement reconnaissant:)

Était-ce utile?

La solution

Select TABLE_NAME, PRIVILEGE_TYPE
from INFORMATION_SCHEMA.TABLE_PRIVILEGES 
where GRANTEE = @username

Cela fonctionnera sur le serveur SQL 2000/2005/2008

Autres conseils

Je ne suis pas sûr si cette procédure fonctionne pour SQL 2000 ou non, elle n’obtient pas le format exact, mais elle risque de vous faire perdre une partie du chemin, vous pouvez la faire pivoter pour obtenir votre format.

sys.sp_helprotect @Username = 'myUser'
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top