#sql #sql_server #permissions #role
Вопрос насчет permissions пользователя экземпляра sql сервера: Например есть у нас пользователь Vasiok, за ним закреплена роль sysadmin. Возможно ли ему закрепить permission вне зависимости от роли?? То-есть, я хочу чтобы он себе и далее был только sysadmin-ом, но кроме того у него еще был дополнительный permission. Если обобщить: могут ли существовать permissions отдельно от roles?
Ответы
Ответ 1
могут ли существовать permissions отдельно от roles? Да, могут. И существуют. В SqlServer есть иерархия разрешений. Разрешения сами по себе не зависят от ролей. Напротив - роль содержит некоторый набор разрешений (и/или запрещений). Есть встроенные роли, - такие как, например, sysadmin, - набор разрешений для них фиксирован и не может изменяться (т.н. fixed roles). Начиная с SqlServer 2012 можно создавать собственные роли уровня сервера, собирая в них необходимые наборы разрешений. Логин может быть в какой-то одной роли, может быть в нескольких ролях одновременно, может не быть ни в одной роли(*), и также может иметь разрешения, установленные напрямую, а не через членство в ролях. Допустим есть логин USE [master] GO CREATE LOGIN [LoginName] WITH PASSWORD = N'L2RG9mZi6EZm' GO Можно сделать его членом роли сервера sysadmin ALTER SERVER ROLE [sysadmin] ADD MEMBER [LoginName] GO но можно дать широкие права и явно GRANT CONTROL SERVER TO [LoginName] GO Членство в роли sysadmin и право CONTROL SERVER эквивалентны(**). (*): строго говоря, любой логин всегда является членом специальной роли public, и отменить это нельзя. (**): на самом деле - почти (из-за некоторых legacy вещей).
Комментариев нет:
Отправить комментарий