Pediram-me para criar um usuário somente leitura em um banco de dados Oracle 12c. O usuário somente leitura deve ter permissões somente leitura apenas para os objetos de esquemas selecionados, que eu criei e entreguei.
Mas agora a solicitação da equipe é que o usuário somente leitura recém-criado deve ter concessões somente leitura para todos os novos objetos criados por esses esquemas selecionados.
Como isso é possível? Entradas por favor!
Não, não, não, você definitivamente não deveria fazer isso. É responsabilidade do criador do objeto conceder os privilégios necessários. (Embora esta seja uma solicitação comum, seria bom finalmente ter suporte integrado para isso.)
Como você está no 12c, esqueça
SELECT
e concedaREAD
.SELECT
não é um privilégio somente leitura. ComSELECT
concedido, o beneficiário pode executarSELECT ... FOR UPDATE
, bloquear linhas e interferir.READ
não permite isso.O que você perguntou ainda é possível com alguns truques sujos, usando um gatilho DDL, por exemplo:
Como faço para criar um gatilho Oracle que concede permissões