¿Cómo genero una tabla de permisos concedidos a las tablas de la base de datos para un usuario de la base de datos?

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

  •  03-07-2019
  •  | 
  •  

Pregunta

Tengo una base de datos de SQL Server 2000 con un par de cientos de tablas. Hay varias cuentas de usuario de SQL que pueden acceder a esta base de datos, pero cada una tiene diferentes permisos otorgados en las tablas en la base de datos.

¿Cómo creo un script para darme un informe de los permisos otorgados a un usuario en particular? es decir, para generar algo como:

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

y así sucesivamente. Es viernes, mi SQL-fu es bajo hoy y tengo un millón de otras cosas que hacer antes de terminar aquí hoy y si alguien tuviera un script práctico para hacer esto ya estaría eternamente agradecido :)

¿Fue útil?

Solución

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

Esto funcionará en el servidor SQL 2000/2005/2008

Otros consejos

No estoy seguro de si este procedimiento funciona para SQL 2000 o no, no tiene el formato exacto, pero puede ser parte del camino, ¿puede girarlo para obtener su formato?

sys.sp_helprotect @Username = 'myUser'
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top