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

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。