云服务器内容精选

  • 委托权限优化 登录图引擎服务管理控制台,在左侧导航栏,选择“图管理”。 如果未整改,在界面的上部,会看到委托权限待整改通知。 单击“前往进行整改”,弹出优化委托权限界面,如图1所示。 注意:该界面会提醒用户在使用GES服务时,部分场景需要委托以授权GES服务访问用户资源,系统会创建ges_access_vpc_custom自定义策略,并授权给ges_agency,以及列举出待删除的具有高风险的委托权限,以提升账号安全性。 图1 优化委托权限 手动输入或者一键输入“DELETE”,执行优化操作,执行成功后该界面会自动关掉待整改通知。 如果当前用户没有查询委托权限,系统无法根据当前用户的认证凭据查询委托信息,整改通知会在每次进入界面时都会弹出,并提示用户通知管理员进行整改。用户也可以关闭该通知或者设置“不再提醒”。
  • GS_DB_PRIVILEGE GS_DB_PRIVILEGE系统表记录ANY权限的授予情况,每条记录对应一条授权信息。 表1 GS_DB_PRIVILEGE字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 roleid oid 用户标识。 privilege_type text 用户拥有的ANY权限,取值参考表1。 admin_option boolean 是否具有privilege_type列记录的ANY权限的再授权权限。 t:表示具有。 f:表示不具有。 父主题: 用户和权限管理
  • 角色权限 角色是 IAM 最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。只包含系统角色,不可自定义角色。 表1 GES系统角色 角色名称 描述 Tenant Guest 普通租户用户。 操作权限:可以对GES资源执行查看操作。 作用范围:项目级服务。 GES Administrator GES服务管理用户。 操作权限:可以对GES资源执行任意操作。 作用范围:项目级服务。 说明: 拥有该权限的用户同时拥有Tenant Guest、Server Administrator、VPC Administrator权限时,可以对GES资源执行任意操作。如果没有Tenant Guest或Server Administrator权限,将无法正常使用GES。 如果需要绑定/解绑EIP,则还需要拥有Security Administrator权限用于创建委托。 如果需要与OBS服务进行交互,例如创建,导入等操作,则还需要拥有OBS服务的权限,具体请参考GES常用操作对OBS权限的依赖关系,OBS权限授权时需要指定权限范围为全局服务资源。 GES Manager GES服务高级用户。 操作权限:可以对GES资源执行除创建图、删除图、变更规格、扩副本以外的任意操作。 作用范围:项目级服务。 说明: 拥有该权限的用户同时拥有Tenant Guest和Server Administrator权限时,可以对GES资源执行除创建图和删除图以外的任意操作。如果没有Tenant Guest权限,将无法正常使用GES。 如果需要绑定/解绑EIP,则还需要拥有Security Administrator和Server Administrator权限。 如果需要与OBS服务进行交互,例如导入操作,则还需要拥有OBS服务的权限,具体请参考GES常用操作对OBS权限的依赖关系,OBS权限授权时需要指定权限范围为全局服务资源。 GES Operator GES服务普通用户。 操作权限:可以对GES资源执行查看操作和访问图。 作用范围:项目级服务。 说明: 拥有该权限的用户同时拥有Tenant Guest权限时,可以对GES资源执行查看操作和访问图。如果没有Tenant Guest,则无法执行查看类操作或者访问图。 如果需要与OBS服务进行交互,例如查看元数据,则还需要拥有OBS服务的权限,具体请参考表3。 表2 GES常用操作与角色的关系 操作 GES Administrator GES Manager GES Operator Tenant Guest 创建图 √ × × × 删除图 √ × × × 查看图 √ √ √ √ 访问图 √ √ √ × 导入数据 √ √ × × 创建元数据 √ √ × × 查看元数据 √ √ √ √ 复制元数据 √ √ × × 编辑元数据 √ √ × × 删除元数据 √ √ × × 清空数据 √ √ × × 备份图 √ √ × × 恢复备份 √ √ × × 删除备份 √ √ × × 查看备份 √ √ √ √ 启动图 √ √ × × 停止图 √ √ × × 升级图 √ √ × × 导出图 √ √ × × 绑定EIP √ √ × × 解绑EIP √ √ × × 查看任务中心 √ √ √ √ 变更规格 √ × × × 扩副本图 √ × × × 重启图 √ √ × × 图细粒度权限配置 √ √ × × 用户组配置 √ √ × × 导入IAM用户 √ √ × × 查看用户详情 √ √ √ √ 表3 GES常用操作对OBS权限的依赖关系 GES操作 依赖的OBS权限 查看元数据 OBS Viewer策略或者OBS Buckets Viewer角色 创建/导入/复制/编辑/删除元数据 OBS Operator策略或者Tenant Administrator角色 创建图,导入图/导出图 OBS Operator策略或者Tenant Administrator角色 表4 GES常用操作对IAM权限的依赖关系 GES操作 依赖的IAM权限 导入IAM用户 iam:users:listUsers自定义策略或者IAM ReadOnlyAccess系统策略或者Server Administrator角色 创建/编辑用户组 iam:users:listUsers自定义策略或者IAM ReadOnlyAccess系统策略或者Server Administrator角色 父主题: 权限管理
  • GS_DB_PRIVILEGE GS_DB_PRIVILEGE系统表记录ANY权限的授予情况,每条记录对应一条授权信息。 表1 GS_DB_PRIVILEGE字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 roleid oid 用户标识。 privilege_type text 用户拥有的ANY权限,取值参考表1。 admin_option boolean 是否具有privilege_type列记录的ANY权限的再授权权限。 t:表示具有。 f:表示不具有。 父主题: 用户和权限管理
  • 参数说明 表1 参数说明 参数 含义 值 Version 角色的版本 1.0:代表基于角色的访问控制。 Statement: 角色的授权语句 Action:授权项 操作权限 格式为:服务名:资源类型:操作 "DNS:Zone:*":表示对DNS的Zone所有操作。其中“DNS”为服务名;“Zone”为资源类型;“*”为通配符,表示对Zone资源类型可以执行所有操作。 Effect:作用 定义Action中的操作权限是否允许执行 Allow:允许执行。 Deny:不允许执行。 说明: 当同一个Action的Effect既有Allow又有Deny时,遵循Deny优先的原则。 Depends: 角色的依赖关系 catalog 依赖的角色所属服务 服务名称。例如:BASE、VPC。 display_name 依赖的角色名称 角色名称。 说明: 给用户组授予示例的“DNS Administraor”角色时,必须同时勾选该角色依赖的角色“Tenant Guest”和“VPC Administrator”,“DNS Administraor”才会生效。 了解更多角色依赖关系,请参考:系统权限。
  • 角色内容 给用户组选择角色时,单击角色前面的,可以查看角色的详细内容,以“DNS Administrator”为例,说明角色的内容。 图1 DNS Administrator角色内容 { "Version": "1.0", "Statement": [ { "Action": [ "DNS:Zone:*", "DNS:RecordSet:*", "DNS:PTRRecord:*" ], "Effect": "Allow" } ], "Depends": [ { "catalog": "BASE", "display_name": "Tenant Guest" }, { "catalog": "VPC", "display_name": "VPC Administrator" } ] }
  • 云专线自定义策略样例 示例1:授权用户更新虚拟网关 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "dcaas:vgw:update" ] } ] }
  • 进入 云监控服务 提示权限不足该如何处理? 此问题与权限配置有关,一般为IAM子帐号权限不足,需检查IAM配置的权限。 管理员使用主账户登录管理控制台。 在控制台页面,鼠标移动至右上方的用户名,在下拉列表中选择“ 统一身份认证 ”。 在左侧导航窗格中,单击“用户组”。 展开子账号所属的用户组的详情。 请参考创建用户组并授权为子帐号所属的用户组添加相应权限。 云监控 服务提供系统策略及操作与策略权限一览表,请参见:云监控服务系统策略。 父主题: 权限管理
  • 权限授予或撤销 数据库对象创建后,进行对象创建的用户就是该对象的所有者。集群安装后的默认情况下,未开启三权分立,数据库系统管理员具有与对象所有者相同的权限。 也就是说对象创建后,默认只有对象所有者或者系统管理员可以查询、修改和删除对象,以及通过GRANT将对象的权限授予其他用户。为使其他用户能够使用对象,可以由对象所有者或管理员通过GRANT/REVOKE对其他用户或角色授予与撤销。 使用GRANT语句授予权限。 例如,将模式myschema的权限赋给角色u1后,将表myschema.t1的SELECT权限授予角色u1。 1 2 GRANT USAGE ON SCHEMA myschema TO u1; GRANT SELECT ON TABLE myschema.t1 to u1; 使用REVOKE撤销已经授予的权限。 例如:撤销用户u1在指定表myschema.t1上的所有权限。 REVOKE ALL PRIVILEGES ON myschema.t1 FROM u1;
  • 权限概述 权限表示用户访问某个数据库对象(包括模式、表、函数、序列等)的操作(包括增、删、改、查、创建等)是否被允许。 GaussDB (DWS)中的权限管理分为三种场景: 系统权限 系统权限又称为用户属性,包括SYSADMIN、CREATEDB、CREATEROLE、AUDITADMIN和 LOG IN。 系统权限一般通过CREATE/ALTER ROLE语法来指定。其中,SYSADMIN权限可以通过GRANT/REVOKE ALL PRIVILEGE授予或撤销。但系统权限无法通过ROLE和USER的权限被继承,也无法授予PUBLIC。 数据对象权限 将数据库对象(表和视图、指定字段、数据库、函数、模式等)的相关权限授予特定角色或用户。GRANT命令将数据库对象的特定权限授予一个或多个角色。这些权限会追加到已有的权限上。 用户权限 将一个角色或用户的权限授予一个或多个其他角色或用户。在这种情况下,每个角色或用户都可视为拥有一个或多个数据库权限的集合。 当声明了WITH ADMIN OPTION,被授权的用户可以将该权限再次授予其他角色或用户,以及撤销所有由该角色或用户继承到的权限。当授权的角色或用户发生变更或被撤销时,所有继承该角色或用户权限的用户拥有的权限都会随之发生变更。 数据库系统管理员可以给任何角色或用户授予/撤销任何权限。拥有CREATEROLE权限的角色可以赋予或者撤销任何非系统管理员角色的权限。
  • 角色 GaussDB(DWS)的权限管理模型,是一种典型的RBAC(基于角色的权限控制)的实现。其将用户、角色、权限通过此模型管理起来。 角色是一组权限的集合。 “用户”概念和“角色”概念实际是等同的,唯一的区别在于“用户”拥有login权限,而“角色”拥有nologin权限。 按照数据库系统中承担的责任划分具有不同权限的角色。角色是数据库权限的集合,代表了一个数据库用户、或一组数据用户的行为约束。 角色和用户可以转换,通过ALTER将角色拥有登录权限。 通过GRANT把角色授予用户后,用户即具有了角色的所有权限。推荐使用角色进行高效权限分配。例如,可以为设计、开发和维护人员创建不同的角色,将角色GRANT给用户后,再向每个角色中的用户授予其所需数据的差异权限。在角色级别授予或撤销权限时,这些权限更改会对角色下的所有成员生效。 非三权分立时,只有系统管理员和具有CREATEROLE属性的用户才能创建、修改或删除角色。三权分立下,只有具有CREATEROLE属性的用户才能创建、修改或删除角色。 要查看所有角色,请查询系统表PG_ROLES: 1 SELECT * FROM PG_ROLES; 具体的创建,修改和删除角色操作,可参考《SQL语法参考》中“CREATE ROLE/ALTER ROLE/DROP ROLE”章节。
  • 层级权限管理 GaussDB(DWS)通过Database、Schema和数据对象权限实现层级权限管理。 Database之间无法直接互访,通过连接隔离实现彻底的权限隔离。各个Database之间共享资源极少,可实现连接隔离、权限隔离等。数据库集群包含一个或多个已命名数据库。用户和角色在整个集群范围内是共享的,但是其数据并不共享。即用户可以连接任何数据库,但当连接成功后,任何用户都只能访问连接请求里所声明的数据库。 Schema隔离的方式共用资源较多,可以通过GRANT与REVOKE语法便捷地控制不同用户对各Schema及其下属对象的权限,从而赋给业务更多的灵活性。每个数据库包括一个或多个Schema。每个Schema包含表、函数等其他类型的对象。用户要访问包含在指定Schema中的对象,需要被授予Schema的USAGE权限。 对象创建后,默认只有对象所有者或者系统管理员可以查询、修改和删除对象。其他用户要访问包含具体的数据库对象,例如table1,需要首先被授予database的CONNECT权限,再被授予Schema的USAGE权限,最后授予table1的SELECT权限。用户要访问底层的对象,必须先赋予上层对象的权限。比如用户要创建或者删除Schema,需要首先被授予database的CREATE权限; 图1 层级权限管理
  • 预置角色 GaussDB(DWS)提供了一组预置角色,以“gs_role_”开头命名,提供对特定的、通常需要高权限的操作的访问,可以将这些角色授权予数据库中的其他用户或角色,使这些用户能够访问或使用特定的信息和功能。请谨慎使用预置角色,以确保预置角色权限的安全使用。 预置角色允许的权限范围可参考下表: 表1 预置角色允许的权限范围 角色 权限描述 gs_role_signal_backend 具有调用函数pg_cancel_backend、pg_terminate_backend、pg_terminate_query、pg_cancel_query、pgxc_terminate_query、pgxc_cancel_query来取消或终止其他会话的权限,但不能操作属于初始用户的会话。 gs_role_read_all_stats 读取系统状态视图并且使用与扩展相关的各种统计信息,包括有些通常只对系统管理员可见的信息。包括: 资源管理类: pgxc_wlm_operator_history pgxc_wlm_operator_info pgxc_wlm_operator_statistics pgxc_wlm_session_info pgxc_wlm_session_statistics pgxc_wlm_workload_records pgxc_workload_sql_count pgxc_workload_sql_elapse_time pgxc_workload_transaction 状态信息类: pgxc_stat_activity pgxc_get_table_skewness table_distribution pgxc_total_memory_detail pgxc_os_run_info pg_nodes_memory pgxc_instance_time pgxc_redo_stat gs_role_analyze_any 具有系统级ANALYZE权限类似系统管理员用户,跳过schema权限检查,对所有的表可以执行ANALYZE。 gs_role_vacuum_any 具有系统级VACUUM权限类似系统管理员用户,跳过schema权限检查,对所有的表可以执行VACUUM。 预置角色的使用约束: 以gs_role_开头的角色名作为数据库的预置角色保留字,禁止新建以“gs_role_”开头的用户/角色,也禁止将已有的用户/角色重命名为以“gs_role_”开头。 禁止对预置角色执行ALTER和DROP操作。 预置角色默认没有LOGIN权限,不设置预置登录密码。 gsql元命令\du和\dg不显示预置角色的相关信息,但若指定了PATTERN(用来指定要被显示的对象名称)则预置角色信息会显示。 三权分立关闭时,系统管理员和具有预置角色ADMIN OPTION权限的用户有权对预置角色执行GRANT/REVOKE管理;三权分立打开时,安全管理员(具有CREATEROLE属性)和具有预置角色ADMIN OPTION权限的用户有权对预置角色执行GRANT/REVOKE管理。例如: 1 2 GRANT gs_role_signal_backend TO user1; REVOKE gs_role_signal_backend FROM user1;
  • 预置角色 GaussDB(DWS)提供了一组预置角色,以“gs_role_”开头命名,提供对特定的、通常需要高权限的操作的访问,可以将这些角色授权予数据库中的其他用户或角色,使这些用户能够访问或使用特定的信息和功能。请谨慎使用预置角色,以确保预置角色权限的安全使用。 预置角色允许的权限范围可参考下表: 表1 预置角色允许的权限范围 角色 权限描述 gs_role_signal_backend 具有调用函数pg_cancel_backend、pg_terminate_backend、pg_terminate_query、pg_cancel_query、pgxc_terminate_query、pgxc_cancel_query来取消或终止其他会话的权限,但不能操作属于初始用户的会话。 gs_role_read_all_stats 读取系统状态视图并且使用与扩展相关的各种统计信息,包括有些通常只对系统管理员可见的信息。包括: 资源管理类: pgxc_wlm_operator_history pgxc_wlm_operator_info pgxc_wlm_operator_statistics pgxc_wlm_session_info pgxc_wlm_session_statistics pgxc_wlm_workload_records pgxc_workload_sql_count pgxc_workload_sql_elapse_time pgxc_workload_transaction 状态信息类: pgxc_stat_activity pgxc_get_table_skewness table_distribution pgxc_total_memory_detail pgxc_os_run_info pg_nodes_memory pgxc_instance_time pgxc_redo_stat gs_role_analyze_any 具有系统级ANALYZE权限类似系统管理员用户,跳过schema权限检查,对所有的表可以执行ANALYZE。 gs_role_vacuum_any 具有系统级VACUUM权限类似系统管理员用户,跳过schema权限检查,对所有的表可以执行VACUUM。 预置角色的使用约束: 以gs_role_开头的角色名作为数据库的预置角色保留字,禁止新建以“gs_role_”开头的用户/角色,也禁止将已有的用户/角色重命名为以“gs_role_”开头。 禁止对预置角色执行ALTER和DROP操作。 预置角色默认没有LOGIN权限,不设置预置登录密码。 gsql元命令\du和\dg不显示预置角色的相关信息,但若指定了PATTERN(用来指定要被显示的对象名称)则预置角色信息会显示。 三权分立关闭时,系统管理员和具有预置角色ADMIN OPTION权限的用户有权对预置角色执行GRANT/REVOKE管理;三权分立打开时,安全管理员(具有CREATEROLE属性)和具有预置角色ADMIN OPTION权限的用户有权对预置角色执行GRANT/REVOKE管理。例如: 1 2 GRANT gs_role_signal_backend TO user1; REVOKE gs_role_signal_backend FROM user1;
  • 权限授予或撤销 数据库对象创建后,进行对象创建的用户就是该对象的所有者。集群安装后的默认情况下,未开启三权分立,数据库系统管理员具有与对象所有者相同的权限。 也就是说对象创建后,默认只有对象所有者或者系统管理员可以查询、修改和删除对象,以及通过GRANT将对象的权限授予其他用户。为使其他用户能够使用对象,可以由对象所有者或管理员通过GRANT/REVOKE对其他用户或角色授予与撤销。 使用GRANT语句授予权限。 例如,将模式myschema的权限赋给角色u1后,将表myschema.t1的SELECT权限授予角色u1。 1 2 GRANT USAGE ON SCHEMA myschema TO u1; GRANT SELECT ON TABLE myschema.t1 to u1; 使用REVOKE撤销已经授予的权限。 例如:撤销用户u1在指定表myschema.t1上的所有权限。 REVOKE ALL PRIVILEGES ON myschema.t1 FROM u1;