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 / 338625
Accepted
Yossi Geretz
Yossi Geretz
Asked: 2024-04-15 09:13:01 +0800 CST2024-04-15 09:13:01 +0800 CST 2024-04-15 09:13:01 +0800 CST

Como crio logins de usuário em meu banco de dados de réplica de leitura?

  • 772

É possível que diferentes usuários acessem meu banco de dados de réplica de leitura? Este não é de fato um caso de uso popular para uma réplica de leitura? Quero que um determinado conjunto limitado de credenciais tenha acesso ao meu banco de dados primário de leitura e gravação e, em seguida, quero que várias outras pessoas possam ter acesso somente leitura à réplica de leitura para relatórios, consultas ad-hoc, etc. . Não quero necessariamente que os dois bancos de dados tenham exatamente os mesmos acessadores.

Criei um login do Microsoft Entra no servidor que hospeda minha réplica de leitura, mas aqui está o que recebo quando tento criar o usuário para acesso ao banco de dados.

insira a descrição da imagem aqui

Msg 3906, Level 16, State 2, Line 1
Failed to update database "********" because the database is read-only.

Bem, é claro que o banco de dados é somente leitura, é minha réplica de leitura. Mas não estou tentando gravar dados no banco de dados, apenas definir os detalhes de meta-segurança para quem na minha organização tem permissão para acessar a réplica de leitura. Isso não pode ser feito?

sql-server
  • 1 1 respostas
  • 48 Views

1 respostas

  • Voted
  1. Best Answer
    Sean Gallardy
    2024-04-15T16:48:27+08:002024-04-15T16:48:27+08:00

    É possível que diferentes usuários acessem meu banco de dados de réplica de leitura?

    Sim, até certo ponto .

    Este não é de fato um caso de uso popular para uma réplica de leitura?

    Mover leituras para réplicas legíveis do primário? Sim!

    Quero que um determinado conjunto limitado de credenciais tenha acesso ao meu banco de dados primário de leitura e gravação e, em seguida, quero que várias outras pessoas possam ter acesso somente leitura à réplica de leitura para relatórios, consultas ad-hoc, etc. . Não quero necessariamente que os dois bancos de dados tenham exatamente os mesmos acessadores.

    Não tenho muita certeza do que significa "exatamente os mesmos acessadores", mas vou interpretar como "Não quero os mesmos logins e usuários em cada instância". Dado esse entendimento, a resposta é não, atualmente não é possível.

    Você pode ter acessos diferentes por instância, mas o próprio banco de dados precisará ter um usuário criado para esse login ou o login precisa ser sysadmin.

    Bem, é claro que o banco de dados é somente leitura, é minha réplica de leitura. Mas não estou tentando gravar dados no banco de dados, apenas definir os detalhes de meta-segurança para quem na minha organização tem permissão para acessar a réplica de leitura.

    Esses metadados residem no banco de dados, então sim, você está tentando gravar dados no banco de dados. Usersresidem no banco de dados e estão vinculados a logins (que residem master) por meio de seu SID. Se você estiver tentando adicionar um login à instância, tudo bem e funcionará. Se você estiver tentando adicionar um usuário, ele precisará ser adicionado à réplica primária e fluirá para as réplicas secundárias. Os logins não precisam estar em cada réplica, os usuários não podem ser alterados conforme discutido.

    Então o superconjunto de TODOS os usuários deve ser definido no banco de dados primário?

    Sim, o primário é a única cópia gravável do banco de dados e a adição de usuários requer gravação no banco de dados.

    E então o subconjunto de logins deve ser criado em cada servidor?

    Sim. Se você não deseja que esse login acesse o banco de dados nesse servidor, não o adicione. É isso que você está pedindo em sua pergunta, acredito.

    Como eu criaria um usuário no banco de dados primário se o login desse usuário não existisse no servidor primário?

    Se for um login SQL que estará vinculado ao usuário, use a SIDopção CREATE USER. Se for um login de domínio, basta usar CREATE USERcom o nome de login do domínio. O usuário em ambos os casos terá o SID correto para vinculá-lo ao login.

    Para concluir isso, o banco de dados e o servidor primários precisam ter os superconjuntos de logins e usuários aos quais será concedido acesso ao banco de dados em qualquer um de seus locais secundários?

    O primário (qualquer servidor que esteja em um determinado momento) é o único local onde os usuários podem ser adicionados. Se você quiser que um usuário tenha acesso, isso precisa ser feito lá. A menos que use sysadminlogins, o login precisará de um usuário associado (tecnicamente, você poderia fazer outras coisas para obter acesso sem um usuário, mas isso é, na melhor das hipóteses, suspeito). Cada servidor não precisa dos mesmos logins, apenas dos logins que você deseja naquele servidor.

    Os usuários residem dentro do banco de dados, incluindo permissões de banco de dados. Os logins residem masterjunto com as permissões no nível do servidor. Se você deseja adicionar permissões de usuário, isso precisa ser concluído no primário.

    Você pode explicar melhor: "Se você estiver tentando adicionar um login à instância, tudo bem e funcionará."?

    Como afirmei, os logins permanecem, masterportanto não há problema em adicionar logins em uma réplica secundária, pois nada precisa ser gravado no banco de dados.

    Qual é a finalidade de um login sem um usuário de banco de dados correspondente?

    Existem vários usos. No seu caso, permitiria um login com sysadmin para acessar o banco de dados sem um usuário associado.

    • 3

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

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