共用方式為


在 適用於 PostgreSQL 的 Azure 資料庫 中建立使用者 - 彈性伺服器

適用於: 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

本文說明如何在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例內建立使用者。

假設您想要瞭解如何建立和管理 Azure 訂用帳戶使用者及其許可權。 在此情況下,您可以流覽 Azure 角色型存取控制 (Azure RBAC) 文章 ,或檢閱 如何自定義角色

伺服器系統管理員帳戶

當您第一次建立 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例時,您提供了伺服器管理員使用者名稱和密碼。 如需詳細資訊,您可以遵循快速入門,查看逐步方法。 由於伺服器管理使用者名稱是自訂名稱,您可以從 Azure 入口網站找到所選的伺服器管理使用者名稱。

適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例是使用定義的三個預設角色所建立。 若要查看這些角色,可執行命令:SELECT rolname FROM pg_roles;

  • azure_pg_admin
  • azuresu
  • 您伺服器的管理使用者

您伺服器的管理使用者是 azure_pg_admin 角色的成員。 不過,伺服器管理員帳戶不是 azuresu 角色的一部分。 由於此服務是受控 PaaS 服務,只有 Microsoft 屬於進階使用者角色。

PostgreSQL 引擎會使用權限來控制資料庫物件的存取,如 PostgreSQL 產品文件中所述。 在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中,伺服器管理員使用者會被授與下列許可權:

  • 登入、NOSUPERUSER、INHERIT、CREATEDB、CREATEROLE

伺服器管理員用戶帳戶可用來建立更多使用者,並將這些使用者授與azure_pg_admin角色。 此外,伺服器管理帳戶可以用來建立較低權限的使用者和角色,以存取個別資料庫和結構描述。

如何在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中建立更多系統管理員使用者

  1. 取得連線資訊和管理員使用者名稱。 您需要完整的伺服器名稱和系統管理員登入認證,才能連線到 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。 您可以從 Azure 入口網站的伺服器 [概觀] 或 [屬性] 頁面輕鬆尋找伺服器名稱和登入資訊。

  2. 使用系統管理員帳戶和密碼來連線到您的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。 使用您慣用的用戶端工具,例如 pgAdmin 或 psql。 如果您不確定如何連線,請參閱 快速入門

  3. 編輯並執行下列 SQL 程式碼。 將新的使用者名稱取代為佔位元值 <new_user>,並以您自己的強密碼取代佔位符密碼。

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

如何在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中建立資料庫使用者

  1. 取得連線資訊和管理員使用者名稱。 您需要完整的伺服器名稱和系統管理員登入認證,才能連線到 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。 您可以從 Azure 入口網站的伺服器 [概觀] 或 [屬性] 頁面輕鬆尋找伺服器名稱和登入資訊。

  2. 使用系統管理員帳戶和密碼連線到 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。 使用您慣用的用戶端工具,例如 pgAdmin 或 psql。

  3. 編輯並執行下列 SQL 程式碼。 將佔位元值 <db_user> 取代為您預定的新使用者名稱和佔位元值,並以您自己的資料庫名稱取代佔位元值 <newdb> 。 以您自己的強式密碼取代密碼預留位置。

    下列 SQL 程式代碼會建立新的資料庫,然後在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例中建立新的使用者,並將連線許可權授與該使用者的新資料庫。

    CREATE DATABASE <newdb>;
    
    CREATE USER <db_user> PASSWORD '<StrongPassword!>';
    
    GRANT CONNECT ON DATABASE <newdb> TO <db_user>;
    
  4. 使用系統管理員帳戶時,您可能需要授與其他許可權來保護資料庫中的物件。 請參閱 PostgreSQL 文件,以深入了解資料庫角色和權限。 例如:

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

    如果使用者建立數據表「角色」,數據表就會屬於該使用者。 如果另一位使用者需要資料表的存取權,則您必須將權限授與資料表層級的其他使用者。

    例如:

    GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <db_user>;
    
  5. 使用新的使用者名稱和密碼登入您的伺服器,並指定指定的資料庫。 此範例會顯示 psql 命令列。 使用此命令,系統會提示您輸入使用者名稱的密碼。 取代您自己的伺服器名稱、資料庫名稱和使用者名稱。

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

下一步

開啟新使用者電腦 IP 位址的防火牆,讓他們能夠連線: