AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 325711
Accepted
Dimitrios Desyllas
Dimitrios Desyllas
Asked: 2023-04-06 20:18:13 +0800 CST2023-04-06 20:18:13 +0800 CST 2023-04-06 20:18:13 +0800 CST

Qual a diferença entre User, Login e role no postgresql?

  • 772

No meu caso, eu queria impedir a listagem de tabelas e visualizações do banco de dados que possui 2 esquemas:

  • público
  • bi

E eu queria evitar que qualquer listagem de tabelas e visualizações fosse pública para um usuário específico, portanto, consultei esta resposta: https://dba.stackexchange.com/a/177272/118215

Mas enquanto lia a resposta, notei que ROLE é diferente de USER e o login é uma "entidade" diferente das acima.

Apesar de estarem relacionados, não consigo entender a diferença entre:

  • Conecte-se
  • PAPEL
  • DO UTILIZADOR

Portanto, alguém pode explicar a diferença?

postgresql
  • 2 2 respostas
  • 72 Views

2 respostas

  • Voted
  1. Best Answer
    White Owl
    2023-04-06T20:53:16+08:002023-04-06T20:53:16+08:00

    A única entidade que o PostgreSQL possui é um ROLE. O ROLE pode possuir objetos (tabelas, visualizações) e ser uma "função de grupo". Mas não existem entidades como LOGIN e USER. Outros DBMS têm "login", "usuário", "grupo", "função" como entidades separadas (Oracle, MSSQL, etc). Mas o PostgreSQL é único assim, tem apenas ROLE.

    Se ROLE tiver atributo de login - é chamado de LOGIN. Em seguida, um cliente (um humano ou algum serviço automático) se conecta ao banco de dados, o cliente fornece um nome para tal função. Qualquer função pode ter um atributo de login.

    Não há entidade USUÁRIO. Por conveniência, o DBMS tem duas funções

    create user name
    drop user name
    

    mas eles são apenas invólucros ao redor

    create role name login
    drop role name
    

    A maneira mais fácil de pensar sobre isso: um USUÁRIO é apenas um PAPEL que pertence a uma única pessoa. Mas isso é apenas uma conveniência.

    Se você deseja que várias pessoas tenham acesso a uma tabela, a maneira mais conveniente de fazer isso é criar uma função de grupo ( GRANT group_role TO role1, role2, role3) e fornecer acesso group_role à tabela. Agora, quando uma pessoa fizer login no role1e tentar acessar uma mesa - a permissão será verificada role1e group_role- se pelo menos uma delas tiver acesso - sucesso.

    • 3
  2. Rohit Gupta
    2023-04-06T20:48:31+08:002023-04-06T20:48:31+08:00

    As funções são como (por exemplo) Administrador, Gerente, Secretário, Desenvolvedor. É como uma função de negócios. Você pode atribuir permissões a diferentes entidades conforme necessário (como ser capaz de selecionar apenas de determinadas tabelas). As funções também podem, opcionalmente, efetuar login.

    Os usuários podem pertencer a uma função. Mais comumente, vários usuários são atribuídos a uma Função. Dessa forma, você pode controlar como as coisas são acessadas de maneira mais estruturada. Os usuários também podem fazer login.

    Consulte Qual é a diferença entre um usuário e uma função?

    E diferença entre papéis e usuários

    • -1

relate perguntas

  • Posso ativar o PITR depois que o banco de dados foi usado

  • Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo

  • Os procedimentos armazenados impedem a injeção de SQL?

  • Sequências Biológicas do UniProt no PostgreSQL

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve