在这填写文档封面小标题
在这填写文档封面大标题
──
在此填写一些版本或日期等附加信息
#如:文档密级|具体的密级说明#

在这填写作者
在这填写版权归属方的信息

[TOC]

新增用户

使用postgres 登录pgsql

1
sudo -u postgres psql postgres -p 5432

添加名为iuser的用户,并设置密码

1
2
create user admin with password 'PG@123456..';

创建数据库pw

1
2
create database pw owner admin;

授予admin用户 pw 数据库的所有权限

1
grant all privileges on database pw to admin;

修改所有者

数据库所有者

1
ALTER DATABASE "pw" OWNER TO "admin";

SCHEMA 所有者

1
ALTER SCHEMA "public" OWNER TO "admin2";

表所有者

1
select 'ALTER TABLE ' || table_name || ' OWNER TO admin2;' from information_schema.tables where table_schema='public';

复制sql 出来,执行一下

重新赋权

1
2
3
4
5
6
7
8
9
10
11
12
13
-- 切换到doki_database下
\c kangkang
-- 收回zhangsan 用户在 kangll_schema 下所有表的所有权限
REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA kangll_schema FROM zhangsan;

-- 为zhangsan 赋予 kangkang 数据库下的查询权限
GRANT select ON all TABLES IN SCHEMA kangll_schema to zhangsan;

GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA kangll_schema TO zhangsan;

-- 导出
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA abc to abc;

只读账号

1
2
3
4
5
6
-- 创建用户 切换管理员数据库执行
create user psql with password '123456';
-- 授权可以连接这个数据库 切换管理员数据库执行
#grant connect on database "password-evaluation" to readadmin;
-- 授权可以查询 切换指定数据库执行
#GRANT select ON all TABLES IN SCHEMA public to readAdmin;

删除用户

1
2
3
4
5
6
7
8
9
-- 撤消用户admin 对数据库 password-evaluation 的所有权限
revoke all on database "password-evaluation" from admin;
revoke ALL ON ALL TABLES in schema public FROM admin;
revoke ALL ON ALL FUNCTIONS in schema public FROM admin;
revoke ALL ON ALL SEQUENCES in schema public FROM admin;
-- ALTER SCHEMA "public" OWNER TO "postgres";
-- alter database "password-evaluation" owner to postgres;
-- 删除用户
DROP user admin;

End