Как создать таблицу разрешений, предоставленных таблицам базы данных для пользователя базы данных? - PullRequest
0 голосов
/ 17 октября 2008

У меня есть база данных SQL Server 2000 с несколькими сотнями таблиц. Существует несколько учетных записей пользователей SQL, которые могут обращаться к этой базе данных, но у каждой из них есть разные разрешения, предоставляемые для таблиц в БД.

Как мне создать скрипт для отчета о разрешениях, предоставленных конкретному пользователю. то есть, чтобы сгенерировать что-то вроде:

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

и так далее. Сегодня пятница, у меня низкий уровень SQL-фу сегодня, и у меня есть еще миллион дел, прежде чем закончить здесь сегодня, и если у кого-то уже есть удобный скрипт для этого, то я буду вечно благодарен:)

Ответы [ 2 ]

1 голос
/ 18 октября 2008
Select TABLE_NAME, PRIVILEGE_TYPE
from INFORMATION_SCHEMA.TABLE_PRIVILEGES 
where GRANTEE = @username

Это будет работать в SQL Server 2000/2005/2008

1 голос
/ 17 октября 2008

Я не уверен, работает ли эта процедура для SQL 2000 или нет, она не получает точный формат, но может помочь вам в этом, можете ли вы повернуть ее, чтобы получить свой формат. *

sys.sp_helprotect @Username = 'myUser'
...