Muito do nosso código - tanto em programas externos quanto em procedimentos armazenados - usa nomes de usuário explícitos, ao se referir a vários objetos de banco de dados:
SELECT * FROM prod.object
ou
prod.StoredProcedure(.....)
Isso causa um problema óbvio, quando uma cópia do banco de dados é carregada em um esquema com um nome diferente - o mesmo objeto se torna qa.object
agora...
Eu propus que abandonássemos completamente essas referências explícitas, referindo-me simplesmente ao object
e StoredProcedure
em vez disso.
No entanto, isso causaria problemas quando outra conta (como prod_ro
) fizer login e tentar executar prod
os procedimentos armazenados do ou navegar prod
nas tabelas.
Como as pessoas lidam com tais situações?
Você pode usar
Em seguida, todas as referências a objetos que não são qualificados com um esquema serão tratadas como se você tivesse escrito
qa.object
. Você ainda precisará dos privilégios necessários para trabalhar com o objeto relevante.