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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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?