banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

PostgreSQL創建ReadOnly只讀使用者

PostgreSQL 可以通過 schema 和 table 級別對資料表進行只讀控制 一般會使用 PostgreSQL 創建只讀使用者,然後給予相應的只讀權限方式實現

通過使用

-- 創建 readonly_user 使用者,密碼為 readonly_password
create user readonly_user with encrypted password 'readonly_password';
-- 設定 readonly_user 使用者為只讀事務
alter user readonly_user set default_transaction_read_only=on;
-- 授予 usage 權限給到 readonly_user 使用者
grant usage on schema "public" to readonly_user;
-- 將默認 "public"schema 下新建表的讀取權限授予給 readonly_user
alter default privileges in schema "public" grant select on tables to readonly_user;
-- 授予 select 權限給到 readonly_user 使用者
grant select on all tables in schema "public" to readonly_user;
grant select on all sequences in schema "public" to readonly_user;
-- 允許 readonly_user 使用者連接到指定資料庫
grant connect on database splrp_dev to readonly_user;

注意: 已有的資料表進行 readonly 設定,可以通過

-- 授予 usage 權限給到 readonly_user 使用者
grant usage on schema "public" to readonly_user;
-- 授予 select 權限給到 readonly_user 使用者
grant select on all tables in schema "public" to readonly_user;
grant select on all sequences in schema "public" to readonly_user;

對於將來創建的新表,則需要通過

-- 將默認 "public"schema 下新建表的讀取權限授予給 readonly_user
alter default privileges in schema "public" grant select on tables to readonly_user;

可以將以後創建的 table 也賦予 readonly_user 只讀權限。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。