控制用户和组访问的示例
此示例创建了用户组和用户,然后向其授予对连接到 Web 应用程序客户端的 Amazon Redshift 数据库的各种权限。此示例假设三组用户:Web 应用程序的常规用户、Web 应用程序的超级用户和 Web 开发人员。
-
创建将在其中分配用户的组。下面一组命令创建三个不同的用户组:
create group webappusers; create group webpowerusers; create group webdevusers;
-
创建多个具有不同权限的数据库用户并将其添加到组。
-
创建两个用户并将其添加到 WEBAPPUSERS 组:
create user webappuser1 password 'webAppuser1pass' in group webappusers; create user webappuser2 password 'webAppuser2pass' in group webappusers;
-
创建 Web 开发人员用户并将其添加到 WEBDEVUSERS 组:
create user webdevuser1 password 'webDevuser2pass' in group webdevusers;
-
创建超级用户。此用户将具有管理权限,可以创建其他用户:
create user webappadmin password 'webAppadminpass1' createuser;
-
-
创建要与 Web 应用程序所使用的数据库表关联的 schema,并授予各种对此 schema 的用户组访问权限:
-
创建 WEBAPP schema:
create schema webapp;
-
向 WEBAPPUSERS 组授予 USAGE 权限:
grant usage on schema webapp to group webappusers;
-
向 WEBPOWERUSERS 组授予 USAGE 权限:
grant usage on schema webapp to group webpowerusers;
-
向 WEBDEVUSERS 组授予 ALL 权限:
grant all on schema webapp to group webdevusers;
基本用户和组现已设置。您现在可以修改用户和组。
-
-
例如,以下命令会修改 WEBAPPUSER1 的 search_path 参数。
alter user webappuser1 set search_path to webapp, public;
SEARCH_PATH 指定在通过未指定 schema 的简单名称引用数据库对象(例如,表和函数)时,对象的 schema 搜索顺序。
-
您还可以在创建组之后向组中添加用户,例如,将 WEBAPPUSER2 添加到 WEBPOWERUSERS 组:
alter group webpowerusers add user webappuser2;