Pouria Polouk Ответов: 1

Роль Db_securityadmin в SQL server


Hi all.
I’m using SQL Server 2014.
I have a question about database roles.
why does the user have to be in db_owner role to use db_securityadmin role permissions?
db_owner can grant to alter any role individually.

regards.


Что я уже пробовал:

это просто вопрос о db_securityadmin!

Richard Deeming

Твой вопрос не имеет смысла. Если пользователь находится в db_securityadmin роль, у них есть разрешения, связанные с этой ролью. Они не должны быть в db_owner и роль тоже.

Есть некоторые вещи, которые db_securityadmin не могу - да, но это уже другой вопрос.

Pouria Polouk

Да, я понимаю.
Но когда я хочу использовать некоторые разрешения роли db_securityadmin, я также должен быть в роли db_owner.
Например, в приведенном ниже коде:

EXEC sp_addrolemember 'db_datareader', 'otherUser'

Когда я хочу запустить его, просто роли db_securityadmin недостаточно, и я тоже должен быть в db_owner. С другой стороны, когда я нахожусь в роли db_owner, я буду иметь доступ к более высокому уровню разрешений бесконтрольно, чего не должно произойти!

каково же решение?

Richard Deeming

Добавление членов в фиксированную роль - это одно из разрешений, которое нет предоставлено db_securityadmin роль.

Это четко указано в документации:

процедуры sp_addrolemember[^]:
Добавление членов в фиксированные роли базы данных требует членства в db_owner фиксированная роль базы данных.

ИЗМЕНИТЬ РОЛЬ[^]:
Кроме того, чтобы изменить членство в фиксированной роли базы данных, вам необходимо: db_owner фиксированная роль базы данных

Таким образом, "решение" состоит в том, чтобы либо добавить пользователя, управляющего разрешениями, в db_owner роль или использовать пользовательские роли вместо фиксированных ролей базы данных.

NB: Если это ограничение не был на месте не было бы ничего, что могло бы остановить db_securityadmin пользователь от добавления себя к db_owner фиксированная роль.

Pouria Polouk

К сожалению, я не изучил документацию.
Большое спасибо, Ричард.
Решенный.

1 Ответов

Рейтинг:
5

Maciej Los

Я бы настоятельно рекомендовал начать с основ: купить книгу или найти ее электронную версию в сети.

Самое главное persmissions из db_owner и db_securityadmin был перечислен здесь:

предопределенной роли db_securityadmin

  1. Роль db_owner позволяет пользователю делать все, что угодно в базе данных.
  2. Администраторы баз данных, которые уже являются членами фиксированной роли сервера sysadmin, входят в систему как dbo и не нуждаются в том, чтобы эта роль была им явно предоставлена.
  3. Обычные пользователи не должны быть членами этой роли.
  4. Приложения могут потребовать, чтобы их учетная запись пользователя была членом этой роли.


  1. Роль db_securityadmin может управлять членством в ролях и разрешениями на защищаемые объекты.
  2. Опять же, так как администраторы баз данных, как правило, управление безопасностью и, как правило, приходят в как dbo, эта роль мало используется.
  3. Обычные пользователи не должны быть членами этой роли.
  4. Приложения, как правило, не нуждаются в этой роли.
  5. Поскольку он мало используется, Вы должны проверить его членство на наличие исключений.


Источник: Общие сведения о фиксированных ролях базы данных SQL Server[^]

Для получения более подробной информации, пожалуйста, смотрите:
Разрешения фиксированных ролей базы данных (компонент Database Engine)[^]
Разрешения фиксированных ролей сервера (компонент Database Engine)[^]
Роли сервера и базы данных в SQL Server[^]


Pouria Polouk

СПАСИБО дорогой друг

Maciej Los

Всегда пожалуйста.
Твое Здоровье, Мацей

Pouria Polouk

Могу я задать вопрос?

Maciej Los

Ну конечно!

Pouria Polouk

Не могли бы вы сказать мне, знаете ли вы идеальный ресурс примеров о "grant alter"?
Я думаю, что Образцов Microsoft недостаточно.

Pouria Polouk

да, но этого недостаточно.
Мне нужны еще примеры.

Maciej Los

Ну, вы должны сделать некоторые исследования (использовать Google) или купить книгу... Извиняюсь.

Pouria Polouk

спасибо Вам за вашу помощь

Maciej Los

Всегда пожалуйста.