Gerir utilizadores no Base de Dados do Azure para PostgreSQL – servidor flexível

Este artigo descreve como criar utilizadores dentro de um servidor flexível Base de Dados do Azure para PostgreSQL.

Para aprender a criar e gerir utilizadores por subscrição do Azure e os seus privilégios, consulte o artigo sobre controlo de acesso baseado em papéis do Azure (Azure RBAC) ou reveja como personalizar funções.

A conta de administrador do servidor

Quando cria pela primeira vez o seu servidor flexível Base de Dados do Azure para PostgreSQL, fornece um nome de utilizador e uma palavra-passe de 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 utilizador administrador do servidor é um nome personalizado, pode localizar o nome de utilizador de administrador do servidor escolhido no portal Azure.

O servidor flexível do Base de Dados do Azure para PostgreSQL é criado com três funções predefinidas. 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 é membro da função azure_pg_admin. No entanto, a conta de administrador do servidor não faz parte da função azuresu. Como esse serviço é um serviço de PaaS gerenciado, apenas 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:

  • Iniciar sessão, NOSUPERUSER, INHERIT, CREATEDB, CREATEROLE

Use a conta de utilizador administrador do servidor para criar mais utilizadores e conceda a esses utilizadores o papel de azure_pg_admin. Além disso, use a conta de administrador do servidor para criar utilizadores e papéis menos privilegiados que tenham acesso a bases 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. Precisa do nome completo do servidor e das credenciais de login de administrador para se ligar ao seu servidor flexível Base 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. Utilize a conta de administrador e a palavra-passe para estabelecer ligação ao seu servidor flexível do Base de Dados do Azure para PostgreSQL. Use sua ferramenta de cliente preferida, 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 seguinte código SQL. Substitua o seu novo nome de utilizador pelo valor <new_user>provisório e substitua a palavra-passe provisória pela sua própria palavra-passe 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. Precisa do nome completo do servidor e das credenciais de login de administrador para se ligar ao seu servidor flexível Base 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. Utilize a conta de administrador e a palavra-passe para se ligar ao seu servidor flexível do Base de Dados do Azure para PostgreSQL. Use sua ferramenta de cliente preferida, como pgAdmin ou psql.

  3. Edite e execute o seguinte código SQL. Substitua o valor do marcador de posição <db_user> pelo novo nome de utilizador que pretende utilizar e o valor do marcador de posição <newdb> pelo nome da sua própria base de dados. Substitua a palavra-passe predefinida pela sua própria palavra-passe segura.

    Este código SQL cria uma nova base de dados, depois cria um novo utilizador no servidor flexível Base de Dados do Azure para PostgreSQL e concede privilégio de ligação à nova base de dados para esse utilizador.

    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 e privilégios de banco de dados. Por exemplo:

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

    Se um usuário cria uma tabela "função", a tabela pertence a esse usuário. Se outro usuário precisar acessar a 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. Inicie sessão no seu servidor, especificando a base de dados designada, utilizando o novo nome de utilizador e palavra-passe. Este exemplo mostra a linha de comando psql. Com este comando, é-lhe solicitada a palavra-passe para o nome de utilizador. 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