控制用户和组访问的示例 - Amazon Redshift

控制用户和组访问的示例

此示例创建了用户组和用户,然后向其授予对连接到 Web 应用程序客户端的 Amazon Redshift 数据库的各种权限。此示例假设三组用户:Web 应用程序的常规用户、Web 应用程序的超级用户和 Web 开发人员。

  1. 创建将在其中分配用户的组。下面一组命令创建三个不同的用户组:

    create group webappusers; create group webpowerusers; create group webdevusers;
  2. 创建多个具有不同权限的数据库用户并将其添加到组。

    1. 创建两个用户并将其添加到 WEBAPPUSERS 组:

      create user webappuser1 password 'webAppuser1pass' in group webappusers; create user webappuser2 password 'webAppuser2pass' in group webappusers;
    2. 创建 Web 开发人员用户并将其添加到 WEBDEVUSERS 组:

      create user webdevuser1 password 'webDevuser2pass' in group webdevusers;
    3. 创建超级用户。此用户将具有管理权限,可以创建其他用户:

      create user webappadmin password 'webAppadminpass1' createuser;
  3. 创建要与 Web 应用程序所使用的数据库表关联的 schema,并授予各种对此 schema 的用户组访问权限:

    1. 创建 WEBAPP schema:

      create schema webapp;
    2. 向 WEBAPPUSERS 组授予 USAGE 权限:

      grant usage on schema webapp to group webappusers;
    3. 向 WEBPOWERUSERS 组授予 USAGE 权限:

      grant usage on schema webapp to group webpowerusers;
    4. 向 WEBDEVUSERS 组授予 ALL 权限:

      grant all on schema webapp to group webdevusers;

    基本用户和组现已设置。您现在可以修改用户和组。

  4. 例如,以下命令会修改 WEBAPPUSER1 的 search_path 参数。

    alter user webappuser1 set search_path to webapp, public;

    SEARCH_PATH 指定在通过未指定 schema 的简单名称引用数据库对象(例如,表和函数)时,对象的 schema 搜索顺序。

  5. 您还可以在创建组之后向组中添加用户,例如,将 WEBAPPUSER2 添加到 WEBPOWERUSERS 组:

    alter group webpowerusers add user webappuser2;