建设网站的目的,中国建设劳动学会官方网站是多少,泰州建站价格,万网企业网站建设pgsql-用户角色组角色创建和维护
环境
win10pgsql 14.2
相关文档 PostgreSQL 14.1 手册 create 语法 grant 授权语法 revoke 撤回语法 alter 更新语法 用户、角色、组角色概念和区别
早期版本#xff08;8.1之前#xff09;中用户、组、角色是不同的概念#…pgsql-用户角色组角色创建和维护
环境
win10pgsql 14.2
相关文档 PostgreSQL 14.1 手册 create 语法 grant 授权语法 revoke 撤回语法 alter 更新语法 用户、角色、组角色概念和区别
早期版本8.1之前中用户、组、角色是不同的概念现在角色的概念把“用户”和“组”的概念都包括在内。角色可以完成登录用户、组角色功能。
作为组角色时可以不为角色分配login属性作为登录用户时可以添加login属性并设置认证类型登录密码如 password ‘123456’为角色授予访问权限如为数据库对象schema、table或者column的访问权限每种对象有不同的特性
数据库对象的关系
database 数据库实例一个实例可以包含多个schema不同实例间数据不共享scheam 模式对表的一个分组同实例下的模式可以共享table 数据表 以上可以统称为数据库对象授权体系中需要不同对象有相关的特性都需要独立授权 ps:如果对表授予select权限但是无schema的usage权限查询时会提示用户没有xx模式的权限但是有schema的usage权限时同时具备了表的curd权限感觉不应该出现这个现象 创建测试表
‘’’ create schema mall; –建table create table mall.product ( id varchar(32) not null constraint product_pk primary key, name varchar(128), price int ); create table mall.“order” ( id varchar(32) not null constraint order_pk primary key, count int, price int ); –数据初始化 insert into mall.product(id,name,price) values (‘p1’,‘n1’,1),(‘p2’,‘n2’,2),(‘p3’,‘n3’,3); insert into mall.order(id,count,price) values (‘o1’,1,1),(‘o2’,2,2),(‘o3’,2,3); –CRUD验证 select * from mall.product; delete from mall.product where id‘x’; update mall.product set name‘x’ where id‘x’; insert into mall.product(id,name,price) values (‘p1’,‘n1’,1); select * from mall.order; ‘’’
测试用例
‘’’ –基础语法结构 /* 创建CREATE ROLE role_name; 授权GRANT group_role TO role1, … ; 撤回REVOKE group_role FROM role1, … ; 删除DROP ROLE role_name; */ –角色组语法 create role group_role;–创建组角色 create role role1; create role role2; grant group_role to role1; grant group_role to role1,role1; –角色用户 create role w_user login password ‘123456’; --准许登录并设置密码 create role r_user login password ‘123456’; alter role r_user password ‘123123’; --修改密码 –scheam权限 { CREATE | USAGE } grant all on schema mall to w_user;–所有特性授予单个角色 grant all on schema mall to w_user,r_user;–所有特性授予多个角色 grant all on schema mall to public;–所有特性授予所有角色 grant usage on schema mall to r_user; revoke all on schema mall from w_user; --撤回 –table权限 grant all on mall.product to w_user;–单表单用户 grant all on mall.product,mall.“order” to w_user;–多表单用户 grant all on all tables in schema mall to w_user,r_user;–所有表多用户 grant all on all tables in schema mall to public;–所有表所有用户 grant all on mall.product to r_user; grant all on all tables in schema mall to r_user; revoke all on all tables in schema mall from r_user; –撤回授权 revoke all on schema mall from public;–所有用户mall模式下的所有权限 revoke all on schema mall from w_user;–单用户mall模式下的所有权限 revoke all on all tables in schema mall from w_user;–单用户mall下所有表的crud权限 revoke all on all tables in schema mall from public;–所有用户mall下表的所有权限 revoke all on schema mall from r_user; revoke all on all tables in schema mall from r_user; ‘’’
总结
pgsql高版本中授权体系里将用户、组、角色都合并到role对象中完全松散管理。没有login特性的role可以理解为角色带login特性的可以理解为用户 官方文档中grant 授权语法里的语法结构仔细的看看结构基本一致注意下on后边的关键字对角色的理解很有帮助。