#snowflake-cloud-data-platform
Вопрос:
Окружающая среда: база данных снежинок.
я пытаюсь найти способ создать роль, у которой есть разрешение администратора безопасности, но она должна ограничивать разрешение только определенной базой данных. выполнимо это или нет? если да, то кто-нибудь может мне в этом помочь? большое спасибо.
Спасибо, Алекс
Комментарии:
1. Привет — какие из привилегий, которыми обладает SECURITYADMIN, которые имеют отношение к базам данных, вы хотите, чтобы эта новая роль имела?
Ответ №1:
SECURITYADMIN-это роль, созданная по умолчанию в Snowflake, и многие его разрешения не связаны с базой данных (например, управление ролями и пользователями). Действительно, большая часть грантов, связанных с базой данных, принадлежит роли системного администратора.
Поэтому, если вы хотите создать пользовательскую роль с ограниченными разрешениями для определенной базы данных. Вы должны указать разрешения, связанные с базой данных, и предоставить эти разрешения пользовательской роли.
Например, если вы хотите предоставить все привилегии роли в определенной базе данных, которую вы можете использовать :
GRANT ALL PRIVILEGES ON DATABASE my_db TO ROLE my_custom_role;
Ответ №2:
Роли-это объекты на уровне учетной записи, а не на уровне БД. Поэтому я предполагаю, что вы на самом деле пытаетесь выполнять ту же роль mgmt, что и SECURITYADMIN, но на уровне бд. В таком случае:
use role SECURITYADMIN;
create role SECURITYADMIN_DB1;
grant create user, create role to SECURITYADMIN_DB1;
После этого создайте роли доступа для своей БД:
https://docs.snowflake.com/en/user-guide/security-access-control-considerations.html#aligning-object-access-with-business-functions
Затем назначьте все роли доступа пользовательской роли SECURITYADMIN_DB1, чтобы ваша роль управляла только этой конкретной базой данных.