MySQL: como fazer a segurança em nível de linha (como o Banco de Dados Privado Virtual da Oracle
Diga que tenho fornecedores que vendem vários produtos. Portanto, em um nível básico, terei as seguintes tabelas:vendor
, product
, vendor_product
.
Se o vendedor-1 adicionarWidget 1
aoproduct
table, quero que apenas o fornecedor-1 veja essas informações (porque essas informações são "de propriedade" do fornecedor-1). O mesmo vale para o fornecedor-2. Digamos que o fornecedor 2 adicionaWidget 2
, apenas o fornecedor-2 deve ver essas informaçõe
Se o fornecedor-1 tentar adicionarWidget 2
, que já foi inserido pelo fornecedor-2, uma entrada duplicada paraWidget 2
não deve ser criado noproduct
tabela. Isso significa que, de alguma forma, preciso saber que o fornecedor-2 agora também "possui"Widget 2
.
Um problema em ter vários "proprietários" de uma informação é como lidar com os proprietários editando / excluindo os dados. Talvez o fornecedor-1 não queira maisWidget 2
estar disponível para ele, mas isso não se aplica necessariamente ao fornecedor-
Finalmente, quero a capacidade de sinalizar (?) Determinados registros como "sim, revisei esses dados e estão corretos", para que depois fiquem disponíveis para todos os fornecedores. Diga que eu sinalizoWidget 1
como bons dados, esse produto deve agora ser visto por todos os fornecedore
Parece que a solução é a segurança no nível da linha. O problema é que eu não estou muito familiarizado com seus conceitos ou como implementá-lo no MySQL. Qualquer ajuda é muito apreciada. Obrigado
NOTA: este problema é um pouco discutido aqui: Design de banco de dados: use chave composta como FK, sinalize dados para compartilha. Quando fiz a pergunta, não tinha certeza de como formular a pergunta muito bem. Felizmente, expliquei melhor o meu problema desta vez.