Boa tarde Estou tentando criar um usuario somente leitura, tendo a possibilidade somente do SELECT, como eu faço para impedir que esse usuario crie novas tabelas?
Boa tarde Estou tentando criar um usuario somente leitura, tendo a possibilidade somente do SELECT, como eu faço para impedir que esse usuario crie novas tabelas?
Depois de criar o usuário você da um GRANT
para ele +.
Rodei os seguintes comandos aqui, já conectado no banco:
create role usuarioteste with login password '123456';
grant connect on database bancoteste to usuarioteste;
grant usage on schema esquemateste to usuarioteste;
grant select on all tables in schema esquemateste to usuarioteste;
Bom dia Robson, obrigado pela ajuda...eu implementei algumas linhas:
GRANT CONNECT ON DATABASE "cb1" TO "role_msantos"; GRANT USAGE ON SCHEMA public TO "role_msantos"; REVOKE CREATE ON SCHEMA public FROM PUBLIC; GRANT SELECT ON ALL TABLES IN SCHEMA public TO "role_msantos"; GRANT EXECUTE ON ALL PROCEDURES IN SCHEMA public TO "role_msantos"; GRANT ALL PRIVILEGES ON DATABASE "cb1" TO "role_msantos"; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO "role_msantos"; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO "role_msantos"; REVOKE GRANT OPTION FOR CREATE ON DATABASE cb1 FROM role_msantos; REVOKE INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA PUBLIC FROM role_msantos;
O que esta acontecendo agora é que ele deixa realmente somente leitura, só que o usuario precisa rodar procedures, funcões e eesta sendo bloqueado, somente quado libero o insert da ultima linha ai ele deixa rodar, só q ai faz insert em qqer tabela e não é isso que eu quero. Pode me dar um help?