Как я могу запросить список ролей базы данных в базе данных 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.)