Creare utenti in Database di Azure per PostgreSQL - Server flessibile

SI APPLICA A: Database di Azure per PostgreSQL - Server flessibile

Questo articolo descrive come creare utenti all'interno di un'istanza del server flessibile Database di Azure per PostgreSQL.

Si supponga di voler imparare a creare e gestire gli utenti della sottoscrizione di Azure e i relativi privilegi. In tal caso, è possibile visitare l'articolo Controllo degli accessi in base al ruolo di Azure o esaminare come personalizzare i ruoli.

Account amministratore del server

Quando è stata creata per la prima volta l'istanza del server flessibile Database di Azure per PostgreSQL, è stato specificato un nome utente e una password dell'amministratore del server. Per altre informazioni, è possibile seguire le istruzioni della Guida introduttiva che illustra un approccio graduale. Poiché il nome utente amministratore del server è un nome personalizzato, è possibile individuare il nome utente amministratore del server scelto dal portale di Azure.

L'istanza del server flessibile Database di Azure per PostgreSQL viene creata con i tre ruoli predefiniti definiti. Per visualizzare questi ruoli, eseguire il comando: SELECT rolname FROM pg_roles;

  • azure_pg_admin
  • azuresu
  • utente amministratore del server

L'utente amministratore del server è un membro del ruolo azure_pg_admin. Tuttavia, l'account amministratore del server non fa parte del ruolo azuresu. Poiché questo è un servizio PaaS gestito, solo Microsoft fa parte del ruolo utente con privilegi avanzati.

Il motore PostgreSQL usa i privilegi per controllare l'accesso agli oggetti di database, come illustrato nella documentazione del prodotto PostgreSQL. In Database di Azure per PostgreSQL server flessibile, all'utente amministratore del server vengono concessi questi privilegi:

  • Accedere, NOSUPERUSER, INHERIT, CREATEDB, CREATEROLE

L'account utente amministratore del server può essere usato per creare più utenti e concedere tali utenti al ruolo di azure_pg_admin. L'account amministratore del server può anche essere usato per creare utenti e ruoli con privilegi meno elevati che possono accedere a singoli database e schemi.

Come creare più utenti amministratori in Database di Azure per PostgreSQL server flessibile

  1. Ottenere le informazioni per la connessione e il nome dell'utente amministratore. Sono necessari il nome completo del server e le credenziali di accesso amministratore per connettersi all'istanza del server flessibile Database di Azure per PostgreSQL. È possibile trovare facilmente il nome del server e le informazioni di accesso nella pagina Proprietà o nella pagina Panoramica del server nel portale di Azure.

  2. Usare l'account amministratore e la password per connettersi all'istanza del server flessibile Database di Azure per PostgreSQL. Usare lo strumento client preferito, ad esempio pgAdmin o psql. Se non si è certi di come connettersi, vedere la guida introduttiva

  3. Modificare ed eseguire il codice SQL seguente. Sostituire il nuovo nome utente con il valore <segnaposto new_user> e sostituire la password segnaposto con la password complessa.

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

Come creare utenti di database in Database di Azure per PostgreSQL server flessibile

  1. Ottenere le informazioni per la connessione e il nome dell'utente amministratore. Sono necessari il nome completo del server e le credenziali di accesso amministratore per connettersi all'istanza del server flessibile Database di Azure per PostgreSQL. È possibile trovare facilmente il nome del server e le informazioni di accesso nella pagina Proprietà o nella pagina Panoramica del server nel portale di Azure.

  2. Usare l'account amministratore e la password per connettersi all'istanza del server flessibile Database di Azure per PostgreSQL. Usare lo strumento client preferito, ad esempio pgAdmin o psql.

  3. Modificare ed eseguire il codice SQL seguente. Sostituire il valore <db_user> segnaposto con il nuovo nome utente desiderato e il valore <newdb> segnaposto con il proprio nome di database. Sostituire la password segnaposto con la propria password complessa.

    Questo codice SQL seguente crea un nuovo database, quindi crea un nuovo utente nell'istanza del server flessibile Database di Azure per PostgreSQL e concede il privilegio di connessione al nuovo database per tale utente.

    CREATE DATABASE <newdb>;
    
    CREATE USER <db_user> PASSWORD '<StrongPassword!>';
    
    GRANT CONNECT ON DATABASE <newdb> TO <db_user>;
    
  4. Usando un account amministratore, potrebbe essere necessario concedere altri privilegi per proteggere gli oggetti nel database. Per altre informazioni sui ruoli e i privilegi del database, vedere la documentazione di PostgreSQL. Ad esempio:

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

    Se un utente crea una tabella "role", la tabella appartiene a tale utente. Se un altro utente deve accedere alla tabella, è necessario concedere privilegi all'altro utente a livello di tabella.

    Ad esempio:

    GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <db_user>;
    
  5. Accedere al server, specificando il database designato, usando il nuovo nome utente e la nuova password. Questo esempio illustra la riga di comando psql. Con questo comando viene richiesto di immettere la password per il nome utente. Sostituire i valori segnaposto con il nome del server, il nome del database e il nome utente effettivi.

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

Passaggi successivi

Aprire il firewall per gli indirizzi IP dei computer dei nuovi utenti per consentire loro di connettersi: