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 只读权限。

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.