Роль 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
К сожалению, я не изучил документацию.
Большое спасибо, Ричард.
Решенный.