Curiosidade

6 respostas
P_ulo_Jos

uma curiosidade minha, em grandes sistemas quando se cadastra um novo um login (mais um usuário para aquele sistema)… o que se faz é criar um novo user no banco (tipo no postgres - Login Roles) para que o o DBA possa trata-lo dando-lhe permissões ou removendo-as … nada a haver com criar uma tabela cadastrando login e senha, é um user de banco para cada usuário novo

6 Respostas

drigo.angelo

Cara isso depende…

Podem haver sistemas onde todos usuários utilizam uma única base de dados, e quando você adiciona outro usuário, simplesmente é feito um “insert” na tabela que contém os usuários/senhas/etc… e as permissões normalmente são definidas pela aplicação (grupos de usuário/etc)…

E também existem aplicações onde cada usuário possui sua própria base de dados, e cadastrar outro usuário implica em criar uma base nova para ele (geralmente a partir de um template padrão)

FelipeGalli

Na verdade não vai ser criado um novo user de banco de dados.Em casos que existe nível de permissão para ser tratado um User ADM que vai ter permissão para criar esse usuário e atribuir seu nível de acesso,por traz dos bastidores existe várias formas,mas vai existir sim uma tabela com login e senha porém outras coisas, uma forma é trazer um ID para cada permissão.

diegobilhalva

Pablo,

Sua curiosidade é uma afirmação ou uma dúvida?

Grandes sistemas (ou pequenos) costumam tratar seus usuários em uma tabela comum afim de compartilharem informações o mais dinamicamente possível. A viabilidade para cadastrar outros dbUsers só se justificaria, entre outras razões, num apartamento total das info. Exemplo: uma empresa X não “veria” os dados de um empresa “Y” e, portanto, teriam dbUsers diferentes com schemas diferentes… talvez as mesmas entidades com a mesma estrutura, e, obviamente, dados diferentes… ou ainda, vc tem um sistema com diferentes módulos… de forma que cada módulo tenha acesso a diferentes entidades de um mesmo schema de um banco por meio de dbUsers diferentes.

Não que fosse impossível (até pq não é) um dbUserA se relacionar com um dbUserB e suas entidades… mas seria mais fácil tratar todos os diferentes usuários e seu acesso a diferentes partes do sistema por tabelas como CadUsuario, CadUsuarioGrupo e CadAcesso…

P_ulo_Jos

valeu a atenção!

mas pelo o que vocês me dizem (posso ter interpretado mal) fica tudo mais fácil tratar tudo no meu programa, mas então por que grandes bancos
como ORACLE precisar de mestres em DBA para tratar deus usuários e dados se eu posso tratar tudo no meu programa?

diegobilhalva

Veja bem meu caro,

Não podemos confundir o trabalho do DBA atribuindo-lhe apenas controle de usuários e acesso a dados…

Além do mais, uma coisa são os usuários do teu sistema e outra são os usuários do banco.

A grosso modo, “o sistema” é um modo de interação com o banco de dados. Você concorda que o BD de dados é algo “muito valioso” que não se pode permitir qualquer pessoa o acessando? Então, como permitir, por exemplo, que um vendedor emita uma nota fiscal de um produto que tenha seu estoque controlado pelo banco de dados? Deveria deixá-lo consultar diretamente o BD, afim de que ele verifique se o produto que ele deseja vender está disponível, ou permito - através de um login e senha - que ele utilize um “sistema” (amigável) afim de obter tal informação?

Lembra-se sempre disto: DBA cuida do banco e de seus relacionamentos diretos. Os indiretos ficam a cargo da programação.

Espero ter ajudado.

drigo.angelo

diegobilhalva disse tudo, mas só pra deixar claro: as pessoas que usam o sistema não tem usuário no banco de dados, mas sim a aplicação que elas utilizam.

É mais ou menos por aí… (e realmente o trabalho do BDA é bem mais complicadinho :!:

Criado 5 de janeiro de 2011
Ultima resposta 5 de jan. de 2011
Respostas 6
Participantes 4