es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Los privilegios predeterminados no se aplican después de crear las tablas.

SQL para el esquema

CREATE SCHEMA my_schema AUTHORIZATION as_admin;
GRANT USAGE ON SCHEMA my_schema TO as_user;
GRANT ALL ON SCHEMA my_schema TO as_admin;
GRANT USAGE ON SCHEMA my_schema TO as_admin_read;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT DELETE, UPDATE, SELECT, INSERT ON TABLES TO as_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT ALL ON TABLES TO as_admin;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT SELECT ON TABLES TO as_admin_read;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT ALL ON SEQUENCES TO as_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT ALL ON SEQUENCES TO as_admin;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT USAGE ON SEQUENCES TO as_admin_read;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT EXECUTE ON FUNCTIONS TO as_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT EXECUTE ON FUNCTIONS TO as_admin;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT EXECUTE ON FUNCTIONS TO as_admin_read;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT USAGE ON TYPES TO as_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA my_schema GRANT USAGE ON TYPES TO as_admin;

Cuando creo una tabla utilizando un usuario con el rol de grupo as_admin, entonces los privilegios no se heredan.

set role as_admin;
CREATE TABLE my_schema.test() WITH (OIDS = FALSE) TABLESPACE pg_default;
ALTER TABLE my_schema.test OWNER to as_admin;

Tabla SQL después de la creación

-- Table: my_schema.test
-- DROP TABLE my_schema.test;
CREATE TABLE my_schema.test() WITH (OIDS = FALSE) TABLESPACE pg_default;
ALTER TABLE my_schema.test OWNER to as_admin;

¿Por qué está sucediendo esto? ¿Dónde están los privilegios?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Los privilegios no están configurados para ser heredados de forma predeterminada. En el script SQL proporcionado, los privilegios se configuran para ser heredados solo cuando se alteran los privilegios predeterminados para tablas, secuencias, funciones y tipos en el esquema my_schema usando el comando ALTER DEFAULT PRIVILEGES. Por lo tanto, cuando se crea una tabla por parte de un usuario con un rol de grupo como_admin, los privilegios no se heredan a menos que se alteren explícitamente los privilegios predeterminados.

Comments are closed.