在 適用於 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 資料庫 彈性伺服器中建立更多系統管理員使用者
取得連線資訊和管理員使用者名稱。 您需要完整的伺服器名稱和系統管理員登入認證,才能連線到 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。 您可以從伺服器 [概觀] 頁面或 Azure 入口網站 的 [屬性] 頁面輕鬆找到伺服器名稱和登入資訊。
使用系統管理員帳戶和密碼來連線到 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。 使用您慣用的用戶端工具,例如pg管理員或 psql。 如果您不確定如何連線,請參閱 快速入門
編輯並執行下列 SQL 程式碼。 將新的使用者名稱取代為佔位元值 <new_user>,並以您自己的強密碼取代佔位符密碼。
CREATE USER <new_user> CREATEDB CREATEROLE PASSWORD '<StrongPassword!>'; GRANT azure_pg_admin TO <new_user>;
如何在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中建立資料庫使用者
取得連線資訊和管理員使用者名稱。 您需要完整的伺服器名稱和系統管理員登入認證,才能連線到 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。 您可以從伺服器 [概觀] 頁面或 Azure 入口網站 的 [屬性] 頁面輕鬆找到伺服器名稱和登入資訊。
使用系統管理員帳戶和密碼連線到您的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。 使用您慣用的用戶端工具,例如pg管理員或 psql。
編輯並執行下列 SQL 程式碼。 將佔位元值
<db_user>
取代為您預定的新使用者名稱和佔位元值,並以您自己的資料庫名稱取代佔位元值<newdb>
。 以您自己的強密碼取代佔位符密碼。下列 SQL 程式代碼會建立新的資料庫,然後在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例中建立新使用者,並將連線許可權授與該使用者的新資料庫。
CREATE DATABASE <newdb>; CREATE USER <db_user> PASSWORD '<StrongPassword!>'; GRANT CONNECT ON DATABASE <newdb> TO <db_user>;
使用系統管理員帳戶時,您可能需要授與其他許可權來保護資料庫中的物件。 如需 資料庫角色和許可權的進一步詳細數據,請參閱 PostgreSQL 檔 。 例如:
GRANT ALL PRIVILEGES ON DATABASE <newdb> TO <db_user>;
如果使用者建立數據表「角色」,數據表就會屬於該使用者。 如果其他使用者需要數據表的存取權,您必須將許可權授與數據表層級上的其他使用者。
例如:
GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <db_user>;
使用新的使用者名稱和密碼登入您的伺服器,並指定指定的資料庫。 此範例顯示 psql 命令行。 使用此命令,系統會提示您輸入使用者名稱的密碼。 取代您自己的伺服器名稱、資料庫名稱和用戶名稱。
psql --host=mydemoserver.postgres.database.azure.com --port=5432 --username=db_user --dbname=newdb
下一步
開啟新使用者電腦 IP 位址的防火牆,讓他們能夠連線:
使用 Azure 入口網站 或 Azure CLI 建立和管理 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器防火牆規則。
如需使用者帳戶管理的詳細資訊,請參閱適用於資料庫角色和許可權、GRANT 語法和許可權的 PostgreSQL 產品檔。