本文說明如何在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中建立使用者。
想了解如何建立和管理 Azure 訂閱使用者及其權限,請參閱 Azure 角色基礎存取控制(Azure RBAC)文章或回顧如何自訂角色。
伺服器系統管理員帳戶
當你第一次建立 適用於 PostgreSQL 的 Azure 資料庫 靈活伺服器時,你必須提供伺服器管理員的使用者名稱和密碼。 如需詳細資訊,請參閱 建立適用於 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 資料庫 彈性伺服器。 使用您偏好的用戶端工具,例如 pgAdmin 或 psql。 如果您不確定如何連線,請參閱 建立適用於 PostgreSQL 的 Azure 資料庫。
編輯並執行下列 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 資料庫 彈性伺服器。 使用您偏好的用戶端工具,例如 pgAdmin 或 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