Перечисление прав / ролей в MS SQL Server 2005 и службах аналитики с использованием Perl (или PHP) - PullRequest
2 голосов
/ 03 марта 2010

В рамках проекта по созданию инструмента для запроса всех видов разрешений, относящихся к пользователям в нашей области на работе, мне нужно запросить некоторую информацию о наших серверах баз данных. Серверы работают на SQL Server 2005 (включая экземпляры служб Analysis Services 2005). Я должен быть в состоянии найти для данного сервера:

  • Список логинов на этом сервере
  • Список ролей на этом сервере
  • На что у каждой роли есть права
  • Кто в каждой роли (или для каждого входа в систему, к каким ролям он принадлежит - в любом случае работает)

Приложение в настоящее время написано на Perl, поэтому, если вы знаете методы, которые можно использовать для запроса этой информации с помощью Perl, я был бы очень благодарен. Единственный другой язык приложений, с которым я могу работать, - это PHP, но его следует избегать по соображениям согласованности, если это вообще возможно.

1 Ответ

0 голосов
/ 03 марта 2010

У меня мало знаний о SSAS, поэтому я оставлю эту часть вопроса кому-то с соответствующим опытом.

Для 1, 2 и 4 вы должны иметь возможность использовать системные сохраненные процессы sp_helplogins, sp_helprole и sp_helprolemember.Вы также можете получить членство в роли из представления sys.database_role_members.Что касается доступа пользователей / ролей, представление sys.database_permissions содержит эти данные.Никаких специфичных для perl методов не требуется, только ваши обычные операторы select и exec.

Возможно, стоит несколько минут прочитать записи Books Online о системных представлениях, системных таблицах и системных хранимых процессах, которыевернуть нужные данные в различных формах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...