我有一个reader读者表,和一个admin管理员表。我想创建三种权限,第一种对reader的select操作,第二种对reader的select,update,delete操作,第三种包含对reader的select,update,delete和admin表的select,delete和admin操作。
时间: 2023-09-19 10:05:46 浏览: 145
设置注册表(读、写、执行)权限
你可以在数据库中创建三个角色,分别对应这三种权限,然后给每个角色分配相应的权限。以下是一个示例:
```
-- 创建角色
CREATE ROLE reader;
CREATE ROLE reader_editor;
CREATE ROLE admin;
-- 给角色分配权限
-- reader角色只能执行reader表的select操作
GRANT SELECT ON reader TO reader;
-- reader_editor角色可以执行reader表的select、update和delete操作
GRANT SELECT, UPDATE, DELETE ON reader TO reader_editor;
-- admin角色可以执行reader表的select、update和delete操作,以及admin表的select和delete操作
GRANT SELECT, UPDATE, DELETE ON reader TO admin;
GRANT SELECT, DELETE ON admin TO admin;
```
然后,你可以创建用户并将其分配到相应的角色中,例如:
```
-- 创建用户
CREATE USER user1 WITH PASSWORD 'password1';
-- 给用户分配角色
GRANT reader TO user1;
-- 创建另一个用户
CREATE USER user2 WITH PASSWORD 'password2';
-- 给用户分配角色
GRANT reader_editor TO user2;
-- 创建第三个用户
CREATE USER user3 WITH PASSWORD 'password3';
-- 给用户分配角色
GRANT admin TO user3;
```
现在,user1只能执行reader表的select操作,user2可以执行reader表的select、update和delete操作,user3可以执行reader表的select、update、delete操作,以及admin表的select和delete操作。
阅读全文