Как я могу запросить список ролей базы данных в базе данных SQL Server 2000?

В Sql Server 2000 возможно ли вернуть через SQL-запрос полный список ролей базы данных, существующих в данной базе данных?

Я знаю, что эти роли можно увидеть, расширив узлы "Безопасность", "Роли" и "Роли базы данных" в SQL Server Management Studio, но я бы хотел получить их с помощью запроса, который я могу проанализировать программным способом.

Скриншот рассматриваемых узлов

Чтобы уточнить, я не ищу список пользователей с их ролями, а просто список самих ролей.

2 ответа

Решение

Каждая база данных в SQL Server 2000 имеет системную таблицу sysusers

Наверное, что-то вроде

Use <MyDatabase>

Select 
  [name]
From
  sysusers
Where
  issqlrole = 1

сделает свое дело

С нашим SQL Server 2016 это работает для меня

Use Sandbox
Select
  name, principal_id
From
  sys.database_principals 
Where
  type = 'R' and principal < 16384

где Sandbox - это имя моей базы данных. (Я использую SQL с ESRI ArcGIS Enterprise 10.6.)

Другие вопросы по тегам