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/ GaussDB(DWS)/ Preguntas frecuentes/ Cuenta, contraseña y permisos/ ¿Cómo creo un usuario de solo lectura de la base de datos?
Actualización más reciente 2023-10-12 GMT+08:00

¿Cómo creo un usuario de solo lectura de la base de datos?

Escenario

En el desarrollo de servicios, los administradores de bases de datos usan esquemas para clasificar datos. Por ejemplo, en el sector financiero, los datos de pasivos pertenecen al esquema s1 y los datos de activos pertenecen al esquema s2.

Ahora tiene que crear un usuario de solo lectura user1 en la base de datos. El usuario puede acceder a todas las tablas (incluidas las nuevas tablas que se crearán en el futuro) del esquema s1 para su lectura diaria, pero no puede insertar, modificar o eliminar datos.

Principios

DWS proporciona gestión de usuarios basada en roles. Es necesario crear un rol de solo lectura role1 y conceder el rol a user1. Para obtener más información, consulte Control de acceso basado en roles.

Procedimiento

  1. Conéctese a la base de datos de DWS como usuario dbadmin.
  2. Ejecute la siguiente instrucción de SQL para crear el rol role1:

    1
    CREATE ROLE role1 PASSWORD disable;
    

  3. Ejecute la siguiente instrucción de SQL para conceder permisos a role1:

    1
    2
    3
    The GRANT usage ON SCHEMA s1 TO role1; -- grants the access permission to schema s1.
    GRANT select ON ALL TABLES IN SCHEMA s1 TO role1; -- grants the query permission on all tables in schema s1.
    ALTER DEFAULT PRIVILEGES FOR USER tom IN SCHEMA s1 GRANT select ON TABLES TO role1; -- grants schema s1 the permission to create tables. tom is the owner of schema s1.
    

  4. Ejecute la siguiente instrucción de SQL para otorgar el rol role1 al usuario user1 real:

    1
    GRANT role1 TO user1;
    

  1. Lea todos los datos de la tabla en el esquema s1 como el usuario de solo lectura user1.