Gerenciar usuários no Servidor Flexível do Banco de Dados do Azure para PostgreSQL

Este artigo descreve como criar usuários em um servidor Banco de Dados do Azure para PostgreSQL flexível.

Para saber como criar e gerenciar usuários da assinatura do Azure e seus privilégios, consulte o artigo sobre controle de acesso baseado em função do Azure (Azure RBAC) ou veja como personalizar funções.

A conta do administrador do servidor

Ao criar seu servidor flexível Banco de Dados do Azure para PostgreSQL pela primeira vez, você fornece um nome de usuário e senha do administrador do servidor. Para obter mais informações, consulte Criar um Banco de Dados do Azure para PostgreSQL para ver a abordagem passo a passo. Como o nome de usuário do administrador do servidor é um nome personalizado, você pode localizar o nome de usuário do administrador do servidor escolhido no portal Azure.

O servidor Banco de Dados do Azure para PostgreSQL flexível é criado com três funções padrão definidas. Você pode ver essas funções executando o comando: SELECT rolname FROM pg_roles;

  • azure_pg_admin
  • azuresu
  • seu usuário administrador do servidor

O usuário administrador do servidor é um membro da função azure_pg_admin. Entretanto, a conta de administrador do servidor não faz parte da função azuresu. Como esse serviço é um serviço de PaaS gerenciado, somente a Microsoft faz parte da função de superusuário.

O mecanismo PostgreSQL usa privilégios para controlar o acesso a objetos de banco de dados, conforme discutido na documentação do produto PostgreSQL. No Banco de Dados do Azure para PostgreSQL, o usuário administrador do servidor recebe estes privilégios:

  • Entrar, NOSUPERUSER, INHERIT, CREATEDB, CREATEROLE

Use a conta de usuário do administrador do servidor para criar mais usuários e conceder a esses usuários a função azure_pg_admin. Além disso, use a conta de administrador do servidor para criar usuários e funções menos privilegiados que tenham acesso a bancos de dados e esquemas individuais.

Como criar mais usuários administradores no Banco de Dados do Azure para PostgreSQL

  1. Obtenha as informações de conexão e o nome de usuário do administrador. Você precisa do nome completo do servidor e das credenciais de entrada do administrador para se conectar ao seu servidor flexível Banco de Dados do Azure para PostgreSQL. Você pode encontrar facilmente o nome do servidor e as informações de entrada na página Visão Geral do servidor ou na página Propriedades no portal do Azure.

  2. Use a conta de administrador e a senha para se conectar ao servidor flexível Banco de Dados do Azure para PostgreSQL. Use sua ferramenta de cliente preferencial, como pgAdmin ou psql. Se você não tiver certeza de como se conectar, consulte Criar um Banco de Dados do Azure para PostgreSQL.

  3. Edite e execute o código SQL a seguir. Substitua seu novo nome de usuário pelo valor <new_user>do espaço reservado e substitua a senha do espaço reservado por sua própria senha forte.

    CREATE USER <new_user> CREATEDB CREATEROLE PASSWORD '<StrongPassword!>';
    
    GRANT azure_pg_admin TO <new_user>;
    

Como criar usuários de banco de dados no Banco de Dados do Azure para PostgreSQL

  1. Obtenha as informações de conexão e o nome de usuário do administrador. Você precisa do nome completo do servidor e das credenciais de entrada do administrador para se conectar ao seu servidor flexível Banco de Dados do Azure para PostgreSQL. Você pode encontrar facilmente o nome do servidor e as informações de entrada na página Visão Geral do servidor ou na página Propriedades no portal do Azure.

  2. Use a conta de administrador e a senha para se conectar ao servidor flexível Banco de Dados do Azure para PostgreSQL. Use sua ferramenta de cliente preferencial, como pgAdmin ou psql.

  3. Edite e execute o código SQL a seguir. Substitua o valor do marcador <db_user> pelo novo nome de usuário desejado e o valor do marcador <newdb> pelo nome do seu próprio banco de dados. Substitua a senha padrão pela sua própria senha forte.

    Esse código SQL cria um novo banco de dados e cria um novo usuário no servidor flexível Banco de Dados do Azure para PostgreSQL e concede privilégio de conexão ao novo banco de dados para esse usuário.

    CREATE DATABASE <newdb>;
    
    CREATE USER <db_user> PASSWORD '<StrongPassword!>';
    
    GRANT CONNECT ON DATABASE <newdb> TO <db_user>;
    
  4. Usando uma conta de administrador, talvez seja necessário conceder outros privilégios para proteger os objetos no banco de dados. Consulte a documentação do PostgreSQL para obter mais detalhes sobre funções de banco de dados e privilégios. Por exemplo:

    GRANT ALL PRIVILEGES ON DATABASE <newdb> TO <db_user>;
    

    Se um usuário criar uma "função" de tabela, a tabela pertence a esse usuário. Se outro usuário precisar de acesso à tabela, você deverá conceder privilégios ao outro usuário no nível da tabela.

    Por exemplo:

    GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <db_user>;
    
  5. Entre no servidor, especificando o banco de dados designado, usando o novo nome de usuário e senha. Este exemplo mostra a linha de comando psql. Com esse comando, você será solicitado a fornecer a senha para o nome de usuário. Substitua seu próprio nome de servidor, nome de banco de dados e nome de usuário.

    psql --host=mydemoserver.postgres.database.azure.com --port=5432 --username=db_user --dbname=newdb