PostgreSQL权限介绍

来源:这里教程网 时间:2026-03-14 20:09:33 作者:

PG的逻辑结构 instance->database->schema->object 权限体系实例权限->pg_hba.confdatabase权限->grant 或revoke是否允许connect或create schema权限scehma权限->grant或revoke是否允许查询schema中的对象、在schema中创建对象object权限->grant或revoke  select\insert\update\delete等权限表空间->grant赋与允许在对应表空间创建表、索引、临时表等 默认权限 数据库在创建后,允许public角色连接,即允许任何人连接。数据库在创建后,不允许除了超级用户和owner之外的任何人在数据库中创建schema。数据库在创建后,会自动创建名为public的schema,这个schema的all权限已经赋予给了public角色,即允许任何人在里面创建对象,但对己存在的其它用户的表不具有任何权限,包括select  权限查询1、查看数据库哪些用户可以connectselect datname,datacl from pg_database where datname='su_db';2、查看指定schema用户所拥有的权限select nspname,nspacl from pg_namespace where nspname='schema_001';3、查看某用户的表权限select * from information_schema.table_privileges where grantee='user_su'; 字母代表的权限的意思如下:             r -- SELECT ("read")            w -- UPDATE ("write")            a -- INSERT ("append")            d -- DELETE            D -- TRUNCATE            x -- REFERENCES            t -- TRIGGER            X -- EXECUTE            U -- USAGE            C -- CREATE            c -- CONNECT            T -- TEMPORARY      arwdDxt -- ALL PRIVILEGES (for tables, varies for other objects)            * -- grant option for preceding privilege 权限设置1、#创建数据库后,取消public登录权限,不影响己连接的sessionrevoke CONNECT ON DATABASE db_001 from PUBLIC;2、#取消所有权限revoke all on database db_001 from public;3、取消用户默认创建public模式下表的权限revoke create on schema public from public;4、赋与连接库的权限grant connect on database db_001 to user_001;

5、赋与创建schema权限

grant  create on database db_001 to user_001;

6、赋与创建表的权限

grant create on schema schema_001 to user_001;

7、赋与修改第6步创建的表的权限

grant usage on schema schema_001 to user_001;

8、单表授权

grant select on public.su_test to user_001;

9、授权查询所有表

GRANT SELECT ON ALL TABLES IN SCHEMA dba TO mobile;

10、下图是PG权限表

相关推荐