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 / user-1323

Jim Dennis's questions

Martin Hope
Jim Dennis
Asked: 2015-10-06 19:09:41 +0800 CST

Como gerenciar DEFAULT PRIVILEGES para USERs em um DATABASE vs SCHEMA?

  • 67

Eu quero migrar um aplicativo bastante simples, interno e orientado a banco de dados do SQLite3 para o PostgreSQL 9.3 e apertar as permissões no banco de dados à medida que eu for.

O aplicativo atualmente consiste em um comando para atualizar os dados; e um para consultá-lo. Naturalmente, também precisarei manter o banco de dados de outras maneiras (criar novas tabelas, visualizações, gatilhos, etc).

Embora este aplicativo seja o único hospedado no servidor a princípio, prefiro assumir que ele pode ser hospedado em um servidor com outros bancos de dados no futuro, em vez de ter que embaralhar mais tarde se isso for necessário em o futuro.

Eu acho que esses seriam um conjunto de requisitos bastante comum, mas estou tendo problemas para encontrar um tutorial simples explicando como configurar um novo banco de dados no PostgreSQL, com esse tipo de separação usuário/privilégio. As referências são extensas sobre grupos, usuários, funções, bancos de dados, esquemas e domínio; mas acho-os confusos.

Aqui está o que eu tentei até agora (de dentro psqlcomo 'postgres'):

CREATE DATABASE hostdb;
REVOKE ALL ON DATABASE hostdb FROM public;
\connect hostdb
CREATE SCHEMA hostdb;
CREATE USER hostdb_admin WITH PASSWORD 'youwish';
CREATE USER hostdb_mgr   WITH PASSWORD 'youwish2';
CREATE USER hostdb_usr WITH PASSWORD 'youwish3';

GRANT ALL PRIVILEGES ON DATABASE hostdb TO hostdb_admin;
GRANT CONNECT ON DATABASE hostdb TO hostdb_mgr, hostdb_usr;
ALTER DEFAULT PRIVILEGES IN SCHEMA hostdb GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO hostdb_mgr;
ALTER DEFAULT PRIVILEGES IN SCHEMA hostdb GRANT SELECT ON TABLES TO hostdb_usr;

Mas eu não estou recebendo a semântica pretendida. Eu quero tê-lo configurado para que apenas as hostdb_admintabelas possam criar (e descartar e alterar); o hostdb_mgrpode ler, inserir, atualizar e excluir em todas as tabelas por padrão; e hostdb_usrsó pode ler todas as tabelas (e visualizações).

Quando tentei isso, descobri que era capaz de criar tabelas hostdbcomo qualquer um desses usuários; mas, para cada usuário, eu só poderia ler ou modificar tabelas criadas por esse usuário - a menos que eu use um GRANT.

Eu estou supondo que há algo faltando entre CREATE DATABASEe CREATE SCHEMA, algo para aplicar SCHEMAao DATABASE?

(À medida que as coisas ficarem mais avançadas, também terei perguntas para aplicar restrições semelhantes em TRIGGERS, procedimentos armazenados VIEWSe talvez outros objetos).

Onde posso encontrar um guia decente, tutorial ou série de vídeos sobre isso?

database-design postgresql
  • 1 respostas
  • 73868 Views
Martin Hope
Jim Dennis
Asked: 2012-05-17 17:15:31 +0800 CST

Usando um nome de arquivo binlog MySQL mais antigo (com posição zero)? Riscos? Desvantagens?

  • 1

Digamos que estou configurando um novo slave. Eu começo com um mysqldump depois de executar mysql -e "STOP SLAVE", transfiro e restauro para o novo servidor.

Se eu não capturei o nome do arquivo BINLOG e a posição após STOP SLAVE e antes de executar o mysqldump, o que acontece se eu simplesmente usar um nome de arquivo binlog anterior/mais antigo (verificado para estar presente no mestre e mais antigo que o backup), com um posição de zero?

Parece apenas forçar o novo mestre a reproduzir todos os eventos para o novo escravo, obviamente incluindo uma série de INSERTs, UPDATEs e DELETEs que já foram representados no backup (aqueles que aconteceram durante o período de tempo sobreposto).

Há algo de errado ou arriscado nisso? Existe uma desvantagem além do tempo extra desperdiçado e dos ciclos de CPU (repetindo talvez um dia inteiro de transações sobrepostas)?

mysql restore
  • 2 respostas
  • 1326 Views

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