对象的权限列表r ---- select w ---- update a ---- insert d ---- delete D ---- truncate x ---- references t ---- trigger X ---- execute U ---- usage C ---- create c ---- connect T ---- temporary arwdDxt ---- all privileges
![]()
对象授权
对象多个权限授权给用户
grant select,insert on test1 to aaa;
授权对象所有权限给用户
授权某个模式下所有查询权限给用户,仅包含当前模式下以存在的表,若授权后新创建的表则无权限查询
这个语句只影响将来在t1模式下创建的新表,已经存在的表不会受到影响
alter default privileges in schema t1 grant select on tables to name1;
授权表某个列的权限给用户
授权对象所有权限给所有用户

对象的权限 information_schema.table_privileges
\dp 也可查看对象的权限
回收权限
回收多个权限
revoke select,insert on test1 from aaa;
![]()
回收所有权限
revoke all on test1 from abc;
![]()
回收某个模式下所有表的查询权限
revoke select on all tables in schema t1 from name1;
![]()
回收表某个列的权限
revoke select(id),update(name) on s1 from abc;
回收所有权限
revoke all on s1 to public;
![]()
对象权限的修改
将对象的属主改为其它用户
alter table a owner to aaa;


转移当前用户库、表的属主
reassign owned by aaa to abc;
database权限
由于数据库创建后会自动创建public schema,并将public all授权给public角色,即表示允许任何用户连接并且创建对象
数据库创建后除超级用户及属主用户外,其它用户无权限在该数据库中创建schema
数据库级权限包含以下集中:
create:允许在指定的数据库中创建schema
connect:允许连接到指定的数据库
temprory:允许创建临时表
all:指定数据库的所有权限
由于数据库在创建时,默认创建public schema,且将该schema权限授给了所有用户,即表示允许任何用户连接访问。如果需要取消某个用户访问该数据库的权限,需要先取消public的连接权限,然后在取消该用户连接数据库的权限
授权用户连接数据库的权限
grant connect on database test1 to u1;
查看哪些用户具备访问test1数据库的权限
回收u1用户访问链接test1数据库的权限
revoke connect on database test1 from public;
revoke connect on database test1 from u1;
![]()









