Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Data Warehouse Service/ Prácticas recomendadas / Gestión de bases de datos/ Control de acceso basado en roles (RBAC)
Actualización más reciente 2026-09-29 GMT+08:00
Control de acceso basado en roles (RBAC)
¿Qué es RBAC?
- El control de acceso basado en roles (RBAC) consiste en otorgar permisos a los roles y permitir que los usuarios obtengan permisos asociándose con los roles.
- Un rol es un conjunto de permisos.
- RBAC simplifica en gran medida la gestión de permisos.
¿Qué es el modelo RBAC?
Asignar permisos adecuados a los roles.
Asociar usuarios con los roles.

Escenarios
Supongamos que hay dos esquemas, s1 y s2.
Hay dos grupos de usuarios:
- Los usuarios u1 y u2 pueden consultar todas las tablas de s1 y actualizar todas las tablas de s2.
- Los usuarios u3 y u4 pueden consultar todas las tablas de s2 y actualizar todas las tablas de s1.

Otorgamiento de permisos
- Conéctese a la base de datos DWS como usuario dbadmin.
- Ejecute las siguientes instrucciones para crear los esquemas s1 y s2 y los usuarios u1 a u4:
Reemplace {password} con la contraseña real.
1 2 3 4 5 6
CREATE SCHEMA s1; CREATE SCHEMA s2; CREATE USER u1 PASSWORD '{password}'; CREATE USER u2 PASSWORD '{password}'; CREATE USER u3 PASSWORD '{password}'; CREATE USER u4 PASSWORD '{password}';
- Copie y ejecute las siguientes instrucciones para crear las tablas s1.t1 y s2.t1:
1 2
CREATE TABLE s1.t1 (c1 int, c2 int); CREATE TABLE s2.t1 (c1 int, c2 int);
- Ejecute la siguiente sentencia para insertar datos en las tablas:
1 2
INSERT INTO s1.t1 VALUES (1,2); INSERT INTO s2.t1 VALUES (1,2);
- Ejecute las siguientes sentencias para crear cuatro roles, cada uno con el permiso de consulta o actualización de la tabla s1 o s2:
1 2 3 4
CREATE ROLE rs1_select PASSWORD disable; -- Permission to query s1 CREATE ROLE rs1_update PASSWORD disable; -- Permission to update s1 CREATE ROLE rs2_select PASSWORD disable; -- Permission to query s2 CREATE ROLE rs2_update PASSWORD disable; -- Permission to update s2
- Ejecute las siguientes sentencias para otorgar los permisos de acceso de los esquemas s1 y s2 a los roles:
1GRANT USAGE ON SCHEMA s1, s2 TO rs1_select, rs1_update,rs2_select, rs2_update;
- Ejecute las siguientes sentencias para otorgar permisos específicos a los roles:
1 2 3 4
GRANT SELECT ON ALL TABLES IN SCHEMA s1 TO rs1_select; -- Grant the query permission on all the tables in s1 to the rs1_select role. GRANT SELECT,UPDATE ON ALL TABLES IN SCHEMA s1 TO rs1_update; -- Grant the query and update permissions on all the tables in s1 to the rs1_update role. GRANT SELECT ON ALL TABLES IN SCHEMA s2 TO rs2_select; -- Grant the query permission on all the tables in s2 to the rs2_select role. GRANT SELECT,UPDATE ON ALL TABLES IN SCHEMA s2 TO rs2_update; -- Grant the query and update permissions on all the tables in s2 to the rs2_update role.
- Ejecute las siguientes sentencias para otorgar roles a los usuarios:
1 2
GRANT rs1_select, rs2_update TO u1, u2; -- Users u1 and u2 have the permissions to query s1 and update s2. GRANT rs2_select, rs1_update TO u3, u4; -- Users u3 and u4 have the permissions to query s2 and update s1.
- Ejecute la siguiente sentencia para ver el rol vinculado a un usuario específico:
1\du u1;

- Inicie otra sesión. Conéctese a la base de datos como usuario u1.
1gsql -d gaussdb -h DWS_EIP -U u1 -p 8000 -r -W {password};
- Ejecute las siguientes sentencias en la nueva sesión para verificar que el usuario u1 puede consultar, pero no puede actualizar s1.t1:
1 2
SELECT * FROM s1.t1; UPDATE s1.t1 SET c2 = 3 WHERE c1 = 1;

- Ejecute las siguientes sentencias en la nueva sesión para verificar que el usuario u1 puede actualizar s2.t1:
1 2
SELECT * FROM s2.t1; UPDATE s2.t1 SET c2 = 3 WHERE c1 = 1;

Tema principal: Gestión de bases de datos
¿Cuál es su calificación general para esta página?
0
1
2
3
4
5
6
7
8
9
10
Muy poco satisfactoriaMuy satisfactoria
Muchas gracias por sus comentarios. Seguiremos trabajando para mejorar la documentación.
El sistema está ocupado. Vuelva a intentarlo más tarde.