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 puedo conceder permisos de esquema a un usuario?
Actualización más reciente 2023-10-12 GMT+08:00

¿Cómo puedo conceder permisos de esquema a un usuario?

En esta sección se describe cómo conceder el permiso de consulta para un esquema como ejemplo. Para obtener más información, vea ¿Cómo puedo conceder permisos de tabla a un usuario?:

  • Permiso para una tabla en un esquema
  • Permiso para todas las tablas de un esquema
  • Permiso para crear tablas en el esquema

Supongamos que hay usuarios u1 y u2, y dos esquemas nombrados después de ellos. El usuario u2 necesita acceder a las tablas en el esquema u1.

  1. Conéctese a su base de datos como dbadmin. Ejecute las siguientes instrucciones para crear usuarios u1 y u2. Se crearán dos esquemas y se les asignará el nombre de los usuarios de forma predeterminada.

    1
    2
    CREATE USER u1 PASSWORD '{password}';
    CREATE USER u2 PASSWORD '{password}';
    

  2. Cree tablas u1.t1 y u1.t2 en el esquema u1.

    1
    2
    CREATE TABLE u1.t1 (c1 int, c2 int);
    CREATE TABLE u1.t2 (c1 int, c2 int);
    

  3. Otorgue el permiso de acceso del esquema u1 al usuario u2.

    1
    GRANT USAGE ON SCHEMA u1 TO u2;
    

  4. Otorgue al usuario u2 el permiso para consultar la tabla u1.t1 en el esquema u1.

    1
    GRANT SELECT ON u1.t1 TO u2;
    

  5. Inicie una nueva sesión y conectarse a la base de datos como usuario u2. Compruebe que el usuario u2 puede consultar la tabla u1.t1 pero no la tabla u1.t2.

    1
    2
    SELECT * FROM u1.t1;
    SELECT * FROM u1.t2;
    

  6. En la sesión iniciada por el usuario dbadmin, conceda al usuario u2 el permiso para consultar todas las tablas del esquema u1.

    1
    GRANT SELECT ON ALL TABLES IN SCHEMA u1 TO u2;
    

  7. En la sesión iniciada por el usuario u2, verifique que u2 pueda consultar todas las tablas.

    1
    2
    SELECT * FROM u1.t1;
    SELECT * FROM u1.t2;
    

  8. En la sesión iniciada por el usuario dbadmin, cree la tabla u1.t3.

    1
    CREATE TABLE u1.t3 (c1 int, c2 int);
    

  9. En la sesión iniciada por el usuario u2, verifique que el usuario u2 no tenga el permiso de consulta para u1.t3. Indica que el usuario u2 tiene el permiso para acceder a todas las tablas existentes en el esquema u1, pero no a las tablas que se crearán en el futuro.

    1
    SELECT * FROM u1.t3;
    

  10. En la sesión iniciada por el usuario dbadmin, conceda al usuario u2 el permiso para consultar las tablas que se crearán en el esquema u1. Cree tabla u1.t4.

    1
    2
    ALTER DEFAULT PRIVILEGES FOR ROLE u1 IN SCHEMA u1 GRANT SELECT ON TABLES TO u2;
    CREATE TABLE u1.t4 (c1 int, c2 int);
    

  11. En la sesión iniciada por el usuario u2, verifique que el usuario u2 pueda acceder a la tabla u1.t4, pero no tenga el permiso para acceder a u1.t3. Para permitir que el usuario acceda a la tabla u1.t3, puede conceder permisos realizando 4.

    1
    SELECT * FROM u1.t4;