У меня есть база данных 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-fu сегодня низкий, и у меня есть еще миллион дел, прежде чем я закончу здесь сегодня, и если бы у кого-то уже был удобный скрипт для этого, я был бы бесконечно благодарен :)


Я не уверен, работает ли эта процедура для SQL 2000 или нет, она не определяет точный формат, но может помочь вам в этом, можете ли вы развернуть ее, чтобы получить свой формат.
sys.sp_helprotect @Username = 'myUser'
Select TABLE_NAME, PRIVILEGE_TYPE
from INFORMATION_SCHEMA.TABLE_PRIVILEGES
where GRANTEE = @username
Это будет работать на SQL-сервере 2000/2005/2008
Я откатил это назад, sql - вполне приемлемый тег, потому что это проблема как SQL, так и SQL Server