Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Acesso de terceiros ao meu DB

Bom dia,

Sou administrador de banco de dados de primeira viagem e estou com uma dúvida a respeitos de parceiros acessando dados de meu clientes em meu banco de dados.

Atualmente se um parceiro da minha empresa precisa checar se alguém faz parte do meu quadro de clientes eu forneço um login LIMITADO apenas para fazer select em uma view (nessa view já está o que ele precisa).

Mas aí me surgiu a seguinte dúvida: -O que impede esse parceiro de fazer um select * na view completa e pegar todos os outros dados?

->Eu teria que ter uma API para disponibilizar esses dados de maneira mais segura? ->É possível permitir apenas selects com cláusula? Ex: "SELECT * FROM tb WHERE cliente = O cliente que ele quer" ->É possível de alguma maneira EU ou minha API ou ALGO respondermos apenas TRUE ou FALSE para ele?

Obrigado!!!!!

2 respostas
solução!

Opa ola leonardo. Você poderia criar uma procedure com uma variavel obrigatoria.

tipo:

SELECT * FROM VW_suaView WHERE USUARIO = @user

assim ele sempre vai ter que rodar o codigo como:

PR_buscaUsuario 'nomeDoUsuario'

E pelo que eu entendi, o terceiro precisa somente colocar um nome la, e ver se esse usuario existe na base ou nao?

Se for isso, voce também pode criar uma procedure usando case. assim quando ele executar, só vai retornar na tela true or false ou qualquer mensagem que voce queira ( como esse usuario existe na base por exemplo).

pra facilitar fiz aqui um teste pra ver se eu nao estava falando besteira haha e deu certo:

create table usuarios (id int, nome varchar(100))
go

insert into usuarios values (1, 'henrique Fonseca')
go

CREATE PROCEDURE PR_verificaUsuario @usuario varchar(100)
    as

      SELECT
      CASE WHEN EXISTS 
      (
            SELECT * FROM usuarios WHERE @usuario=nome
      )
      THEN 'Existe na Base'
      ELSE 'Não existe na Base'
      end

   PR_verificaUsuario 'wolverine' --Não existe na base
   PR_verificaUsuario 'henrique Fonseca' --Existe na Base

Muito obrigado pela rápida resposta, Rafael Piccinelli.

Irei testar mas estou quase certo que resolve meu problema.

Obrigado mesmo!!!!