Come posso generare una tabella di autorizzazioni concesse alle tabelle del database per un utente del database?

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

  •  03-07-2019
  •  | 
  •  

Domanda

Ho un database SQL Server 2000 con circa un paio di centinaia di tabelle. Esistono diversi account utente SQL che possono accedere a questo database ma ognuno ha autorizzazioni diverse concesse sulle tabelle nel DB.

Come posso creare uno script per darmi un rapporto delle autorizzazioni concesse a un determinato utente. vale a dire generare qualcosa del tipo:

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

e così via. È venerdì, il mio SQL-fu è basso oggi e ho un milione di altre cose da fare prima di finire qui oggi e se qualcuno avesse uno script utile per farlo già allora sarei eternamente grato :)

È stato utile?

Soluzione

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

Funzionerà in SQL Server 2000/2005/2008

Altri suggerimenti

Non sono sicuro che questa procedura funzioni per SQL 2000 o meno, non ottiene il formato esatto, ma potrebbe farti strada in questo modo, puoi ruotarlo per ottenere il tuo formato.

sys.sp_helprotect @Username = 'myUser'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top