From 38b434626ee934b5f74f61bc22ccec7c2d8a211e Mon Sep 17 00:00:00 2001
From: liyang0608 <264327807@qq.com>
Date: Fri, 27 Nov 2020 14:57:08 +0800
Subject: [PATCH 1/2] fix bugs
---
.../CREATE-ROW-LEVEL-SECURITY-POLICY.md | 224 ------------------
.../CREATE-ROW-LEVLEL-SECURITY-POLICY.md | 13 +
2 files changed, 13 insertions(+), 224 deletions(-)
delete mode 100644 content/zh/docs/Developerguide/CREATE-ROW-LEVEL-SECURITY-POLICY.md
diff --git a/content/zh/docs/Developerguide/CREATE-ROW-LEVEL-SECURITY-POLICY.md b/content/zh/docs/Developerguide/CREATE-ROW-LEVEL-SECURITY-POLICY.md
deleted file mode 100644
index 931902aef..000000000
--- a/content/zh/docs/Developerguide/CREATE-ROW-LEVEL-SECURITY-POLICY.md
+++ /dev/null
@@ -1,224 +0,0 @@
-# CREATE ROW LEVEL SECURITY POLICY
-
-## 功能描述
-
-对表创建行访问控制策略。
-
-当对表创建了行访问控制策略,只有打开该表的行访问控制开关\(ALTER TABLE ... ENABLE ROW LEVEL SECURITY\),策略才能生效。否则不生效。
-
-当前行访问控制影响数据表的读取操作\(SELECT、UPDATE、DELETE\),暂不影响数据表的写入操作\(INSERT、MERGE INTO\)。表所有者或系统管理员可以在USING子句中创建表达式,在客户端执行数据表读取操作时,数据库后台在查询重写阶段会将满足条件的表达式拼接并应用到执行计划中。针对数据表的每一条元组,当USING表达式返回TRUE时,元组对当前用户可见,当USING表达式返回FALSE或NULL时,元组对当前用户不可见。
-
-行访问控制策略名称是针对表的,同一个数据表上不能有同名的行访问控制策略;对不同的数据表,可以有同名的行访问控制策略。
-
-行访问控制策略可以应用到指定的操作\(SELECT、UPDATE、DELETE、ALL\),ALL表示会影响SELECT、UPDATE、DELETE三种操作;定义行访问控制策略时,若未指定受影响的相关操作,默认为ALL。
-
-行访问控制策略可以应用到指定的用户\(角色\),也可应用到全部用户\(PUBLIC\);定义行访问控制策略时,若未指定受影响的用户,默认为PUBLIC。
-
-## 注意事项
-
-- 支持对行存表、行存分区表、列存表、列存分区表、复制表、unlogged表、hash表定义行访问控制策略。
-- 不支持外表、临时表定义行访问控制策略。
-- 不支持对视图定义行访问控制策略。
-- 同一张表上可以创建多个行访问控制策略,一张表最多创建100个行访问控制策略。
-- 系统管理员不受行访问控制影响,可以查看表的全量数据。
-- 通过SQL语句、视图、函数、存储过程查询包含行访问控制策略的表,都会受影响。
-
-## 语法格式
-
-```
-CREATE [ ROW LEVEL SECURITY ] POLICY policy_name ON table_name
- [ AS { PERMISSIVE | RESTRICTIVE } ]
- [ FOR { ALL | SELECT | INSERT | UPDATE | DELETE } ]
- [ TO { role_name | PUBLIC | CURRENT_USER | SESSION_USER } [, ...] ]
- USING ( using_expression )
-```
-
-## 参数说明
-
-- **policy\_name**
-
- 行访问控制策略名称,同一个数据表上行访问控制策略名称不能相同。
-
-- **table\_name**
-
- 行访问控制策略的表名。
-
-- **command**
-
- 当前行访问控制影响的SQL操作,可指定操作包括:ALL、SELECT、UPDATE、DELETE。当未指定时,ALL为默认值,涵盖SELECT、UPDATE、DELETE操作。
-
- 当command为SELECT时,SELECT类操作受行访问控制的影响,只能查看到满足条件\(using\_expression返回值为TRUE\)的元组数据,受影响的操作包括SELECT,UPDATE ... RETURNING,DELETE ... RETURNING。
-
- 当command为UPDATE时,UPDATE类操作受行访问控制的影响,只能更新满足条件\(using\_expression返回值为TRUE\)的元组数据,受影响的操作包括UPDATE, UPDATE ... RETURNING, SELECT ... FOR UPDATE/SHARE。
-
- 当command为DELETE时,DELETE类操作受行访问控制的影响,只能删除满足条件\(using\_expression返回值为TRUE\)的元组数据,受影响的操作包括DELETE, DELETE ... RETURNING。
-
- 行访问控制策略与适配的SQL语法关系参加下表:
-
- **表 1** ROW LEVEL SECURITY策略与适配SQL语法关系
-
-
-
Command
- |
- SELECT/ALL policy
- |
- UPDATE/ALL policy
- |
- DELETE/ALL policy
- |
-
-
- SELECT
- |
- Existing row
- |
- No
- |
- No
- |
-
- SELECT FOR UPDATE/SHARE
- |
- Existing row
- |
- Existing row
- |
- No
- |
-
- UPDATE
- |
- No
- |
- Existing row
- |
- No
- |
-
- UPDATE RETURNING
- |
- Existing row
- |
- Existing row
- |
- No
- |
-
- DELETE
- |
- No
- |
- No
- |
- Existing row
- |
-
- DELETE RETURNING
- |
- Existing row
- |
- No
- |
- Existing row
- |
-
-
-
-
-- **role\_name**
-
- 行访问控制影响的数据库用户。
-
- 当未指定时,PUBLIC为默认值,PUBLIC表示影响所有数据库用户,可以指定多个受影响的数据库用户。
-
- > **须知:**
- >系统管理员不受行访问控制特性影响。
-
-
-- **using\_expression**
-
- 行访问控制的表达式(返回boolean值)。
-
- 条件表达式中不能包含AGG函数和窗口(WINDOW)函数。在查询重写阶段,如果数据表的行访问控制开关打开,满足条件的表达式会添加到计划树中。针对数据表的每条元组,会进行表达式计算,只有表达式返回值为TRUE时,行数据对用户才可见(SELECT、UPDATE、DELETE);当表达式返回FALSE时,该元组对当前用户不可见,用户无法通过SELECT语句查看此元组,无法通过UPDATE语句更新此元组,无法通过DELETE语句删除此元组。
-
-
-## 示例
-
-```
---创建用户alice
-postgres=# CREATE ROLE alice PASSWORD 'Gauss@123';
-
---创建用户bob
-postgres=# CREATE ROLE bob PASSWORD 'Gauss@123';
-
---创建数据表all_data
-postgres=# CREATE TABLE all_data(id int, role varchar(100), data varchar(100));
-
---向数据表插入数据
-postgres=# INSERT INTO all_data VALUES(1, 'alice', 'alice data');
-postgres=# INSERT INTO all_data VALUES(2, 'bob', 'bob data');
-postgres=# INSERT INTO all_data VALUES(3, 'peter', 'peter data');
-
---将表all_data的读取权限赋予alice和bob用户
-postgres=# GRANT SELECT ON all_data TO alice, bob;
-
---打开行访问控制策略开关
-postgres=# ALTER TABLE all_data ENABLE ROW LEVEL SECURITY;
-
---创建行访问控制策略,当前用户只能查看用户自身的数据
-postgres=# CREATE ROW LEVEL SECURITY POLICY all_data_rls ON all_data USING(role = CURRENT_USER);
-
---查看表all_data相关信息
-postgres=# \d+ all_data
- Table "public.all_data"
- Column | Type | Modifiers | Storage | Stats target | Description
---------+------------------------+-----------+----------+--------------+-------------
- id | integer | | plain | |
- role | character varying(100) | | extended | |
- data | character varying(100) | | extended | |
-Row Level Security Policies:
- POLICY "all_data_rls"
- USING (((role)::name = "current_user"()))
-Has OIDs: no
-Location Nodes: ALL DATANODES
-Options: orientation=row, compression=no, enable_rowsecurity=true
-
---当前用户执行SELECT操作
-postgres=# SELECT * FROM all_data;
- id | role | data
-----+-------+------------
- 1 | alice | alice data
- 2 | bob | bob data
- 3 | peter | peter data
-(3 rows)
-
-postgres=# EXPLAIN(COSTS OFF) SELECT * FROM all_data;
- QUERY PLAN
-----------------------------
- Streaming (type: GATHER)
- Node/s: All dbnodes
- -> Seq Scan on all_data
-(3 rows)
-
---切换至alice用户执行SELECT操作
-postgres=# SELECT * FROM all_data;
- id | role | data
-----+-------+------------
- 1 | alice | alice data
-(1 row)
-
-postgres=# EXPLAIN(COSTS OFF) SELECT * FROM all_data;
- QUERY PLAN
-----------------------------------------------------------------
- Streaming (type: GATHER)
- Node/s: All dbnodes
- -> Seq Scan on all_data
- Filter: ((role)::name = 'alice'::name)
- Notice: This query is influenced by row level security feature
-(5 rows)
-```
-
-## 相关链接
-
-[DROP ROW LEVEL SECURITY POLICY](DROP-ROW-LEVEL-SECURITY-POLICY.md)
-
diff --git a/content/zh/docs/Developerguide/CREATE-ROW-LEVLEL-SECURITY-POLICY.md b/content/zh/docs/Developerguide/CREATE-ROW-LEVLEL-SECURITY-POLICY.md
index acc5d59f8..0913c8042 100644
--- a/content/zh/docs/Developerguide/CREATE-ROW-LEVLEL-SECURITY-POLICY.md
+++ b/content/zh/docs/Developerguide/CREATE-ROW-LEVLEL-SECURITY-POLICY.md
@@ -43,6 +43,19 @@ CREATE [ ROW LEVEL SECURITY ] POLICY policy_name ON table_name
行访问控制策略的表名。
+- **PERMISSIVE | RESTRICTIVE**
+
+ PERMISSIVE指定行访问控制策略为宽容性策略。宽容性策略的条件用OR表达式拼接。
+
+ RESTRICTIVE指定行访问控制策略为限制性策略。限制性策略的条件用AND表达式拼接。拼接方式如下:
+
+ ```
+(using_expression_permissive_1 OR using_expression_permissive_2 ...) AND
+ (using_expression_restrictive_1 AND using_expression_restrictive_2 ...)
+```
+
+缺省值为PERMISSIVE。
+
- **command**
当前行访问控制影响的SQL操作,可指定操作包括:ALL、SELECT、UPDATE、DELETE。当未指定时,ALL为默认值,涵盖SELECT、UPDATE、DELETE操作。
--
Gitee
From fec1b107c6f06d6c9f1371766d4e6e0985252173 Mon Sep 17 00:00:00 2001
From: liyang0608 <264327807@qq.com>
Date: Mon, 30 Nov 2020 11:38:11 +0800
Subject: [PATCH 2/2] new feature
---
.../default-permission-mechanism.md | 4 ++--
content/en/docs/Developerguide/desktop.ini | 2 ++
.../Developerguide/ALTER-DEFAULT-PRIVILEGES.md | 2 ++
content/zh/docs/Developerguide/ALTER-TABLE.md | 12 ++++++------
content/zh/docs/Developerguide/ALTER-TYPE.md | 2 +-
content/zh/docs/Developerguide/CREATE-GROUP.md | 2 +-
content/zh/docs/Developerguide/CREATE-INDEX.md | 2 +-
.../docs/Developerguide/CREATE-TABLE-PARTITION.md | 2 +-
content/zh/docs/Developerguide/CREATE-TABLE.md | 2 +-
content/zh/docs/Developerguide/CREATE-TYPE.md | 2 +-
.../Developerguide/GLOBAL_MEMORY_NODE_DETAIL.md | 2 +-
content/zh/docs/Developerguide/GRANT.md | 15 ++-------------
content/zh/docs/Developerguide/REVOKE.md | 14 +-------------
...35\203\351\231\220\346\234\272\345\210\266.md" | 4 ++--
14 files changed, 24 insertions(+), 43 deletions(-)
create mode 100644 content/en/docs/Developerguide/desktop.ini
diff --git a/content/en/docs/Developerguide/default-permission-mechanism.md b/content/en/docs/Developerguide/default-permission-mechanism.md
index f581e7c44..b0204d54e 100644
--- a/content/en/docs/Developerguide/default-permission-mechanism.md
+++ b/content/en/docs/Developerguide/default-permission-mechanism.md
@@ -4,9 +4,9 @@ A user who creates an object is the owner of this object. By default, [Separati
To enable another user to use the object, grant required permissions to the user or the role that contains the user.
-openGauss supports the following permissions: **SELECT**, **INSERT**, **UPDATE**, **DELETE**, **TRUNCATE**, **REFERENCES**, **CREATE**, **CONNECT**, **EXECUTE**, and **USAGE**. Permission types are associated with object types. For permission details, see [GRANT](grant.md).
+openGauss supports the following permissions: **SELECT**, **INSERT**, **UPDATE**, **DELETE**, **TRUNCATE**, **REFERENCES**, **CREATE**, **CONNECT**, **EXECUTE**, **ALTER**, **DROP**, **COMMENT**, **INDEX**, **VACUUM** and **USAGE**. Permission types are associated with object types. For permission details, see [GRANT](grant.md).
-To remove permissions, run **[REVOKE](revoke.md)**. Object owner permissions such as **ALTER**, **DROP**, **GRANT**, and **REVOKE** are implicit and cannot be granted or revoked. That is, you have the implicit permissions for an object if you are the owner of the object. Object owners can remove their own common permissions, for example, making tables read-only to themselves or others,Except system administrators.
+To remove permissions, run **[REVOKE](revoke.md)**. Object owner permissions such as **ALTER**, **DROP**, **COMMENT**, **INDEX**, **VACUUM**, **GRANT**, and **REVOKE** are implicit and cannot be granted or revoked. That is, you have the implicit permissions for an object if you are the owner of the object. Object owners can remove their own common permissions, for example, making tables read-only to themselves or others,Except system administrators.
System catalogs and views are visible to either system administrators or all users. System catalogs and views that require system administrator permissions can be queried only by system administrators. For details, see [System Catalogs and System Views](system-catalogs-and-system-views.md).
diff --git a/content/en/docs/Developerguide/desktop.ini b/content/en/docs/Developerguide/desktop.ini
new file mode 100644
index 000000000..be9ad94f5
--- /dev/null
+++ b/content/en/docs/Developerguide/desktop.ini
@@ -0,0 +1,2 @@
+[LocalizedFileNames]
+default-permission-mechanism.md=@default-permission-mechanism,0
diff --git a/content/zh/docs/Developerguide/ALTER-DEFAULT-PRIVILEGES.md b/content/zh/docs/Developerguide/ALTER-DEFAULT-PRIVILEGES.md
index 75fafeb81..0f7e9345e 100644
--- a/content/zh/docs/Developerguide/ALTER-DEFAULT-PRIVILEGES.md
+++ b/content/zh/docs/Developerguide/ALTER-DEFAULT-PRIVILEGES.md
@@ -21,8 +21,10 @@ ALTER DEFAULT PRIVILEGES
```
grant_on_tables_clause
+ | grant_on_sequences_clause
| grant_on_functions_clause
| grant_on_types_clause
+ | revoke_on_sequences_clause
| revoke_on_tables_clause
| revoke_on_functions_clause
| revoke_on_types_clause
diff --git a/content/zh/docs/Developerguide/ALTER-TABLE.md b/content/zh/docs/Developerguide/ALTER-TABLE.md
index 6dd2662cf..a257243a1 100644
--- a/content/zh/docs/Developerguide/ALTER-TABLE.md
+++ b/content/zh/docs/Developerguide/ALTER-TABLE.md
@@ -174,15 +174,15 @@
- 其中根据已有唯一索引为表增加主键约束或唯一约束table\_constraint\_using\_index为:
-
+
```
[ CONSTRAINT constraint_name ]
{ UNIQUE | PRIMARY KEY } USING INDEX index_name
[ DEFERRABLE | NOT DEFERRABLE | INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
```
-
+
- 其中表约束table\_constraint为:
-
+
```
[ CONSTRAINT constraint_name ]
{ CHECK ( expression ) |
@@ -191,9 +191,9 @@
PARTIAL CLUSTER KEY ( column_name [, ... ] }
[ DEFERRABLE | NOT DEFERRABLE | INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
```
-
+
其中索引参数index\_parameters为:
-
+
```
[ WITH ( {storage_parameter = value} [, ... ] ) ]
[ USING INDEX TABLESPACE tablespace_name ]
@@ -297,7 +297,7 @@
- **collation**
- 字段排序规则名称。可选字段COLLATE指定了新字段的排序规则,如果省略,排序规则为新字段的默认类型。排序规则可以使用“select \* from pg\_collation”命令从pg\_collation系统表中查询,默认的排序规则为查询结果中以default开始的行。
+ 字段排序规则名称。可选字段COLLATE指定了新字段的排序规则,如果省略,排序规则为新字段的默认类型。排序规则可以使用“select \* from pg\_collation;”命令从pg\_collation系统表中查询,默认的排序规则为查询结果中以default开始的行。
- **USING expression**
diff --git a/content/zh/docs/Developerguide/ALTER-TYPE.md b/content/zh/docs/Developerguide/ALTER-TYPE.md
index 2696b6710..f82791a0c 100644
--- a/content/zh/docs/Developerguide/ALTER-TYPE.md
+++ b/content/zh/docs/Developerguide/ALTER-TYPE.md
@@ -143,7 +143,7 @@
> **须知:**
>- ADD ATTRIBUTE、DROP ATTRIBUTE和ALTER ATTRIBUTE选项可以组合成一个列表同时处理。 例如,在一条命令中同时增加几个属性或是更改几个属性的类型是可以实现的。
- >- 要修改一个类型的模式,还必须在新模式上拥有CREATE权限。 要修改所有者,必须是新的所有角色的直接或间接成员, 并且该成员必须在此类型的模式上有CREATE权限。 (这些限制强制了修改所有者不会做任何通过删除和重建类型不能做的事情。 不过,系统管理员可以以任何方式修改任意类型的所有权。) 要增加一个属性或是修改一个属性的类型,也必须有该类型的USAGE权限。
+ >- 要修改一个类型的模式,必须在新模式上拥有CREATE权限。 要修改所有者,必须是新的所有角色的直接或间接成员, 并且该成员必须在此类型的模式上有CREATE权限。 (这些限制强制了修改所有者不会做任何通过删除和重建类型不能做的事情。 不过,系统管理员可以以任何方式修改任意类型的所有权。) 要增加一个属性或是修改一个属性的类型,也必须有该类型的USAGE权限。
## 示例
diff --git a/content/zh/docs/Developerguide/CREATE-GROUP.md b/content/zh/docs/Developerguide/CREATE-GROUP.md
index 6848b9d6d..d28029020 100644
--- a/content/zh/docs/Developerguide/CREATE-GROUP.md
+++ b/content/zh/docs/Developerguide/CREATE-GROUP.md
@@ -11,7 +11,7 @@ CREATE GROUP是CREATE ROLE的别名,非SQL标准语法,不推荐使用,建
## 语法格式
```
-CREATE GROUP group_name [ [ WITH ] option [ ... ] ] [ ENCRYPTED | UNENCRYPTED ] { PASSWORD | IDENTIFIED BY } { 'password' | DISABLE };
+CREATE GROUP group_name [ [ WITH ] option [ ... ] ] [ ENCRYPTED | UNENCRYPTED ] { PASSWORD | IDENTIFIED BY } { 'password' [EXPIRED]| DISABLE };
```
其中可选项option子句语法为:
diff --git a/content/zh/docs/Developerguide/CREATE-INDEX.md b/content/zh/docs/Developerguide/CREATE-INDEX.md
index 865ce0adb..9397eb9c4 100644
--- a/content/zh/docs/Developerguide/CREATE-INDEX.md
+++ b/content/zh/docs/Developerguide/CREATE-INDEX.md
@@ -120,7 +120,7 @@
- **COLLATE collation**
- COLLATE子句指定列的排序规则(该列必须是可排列的数据类型)。如果没有指定,则使用默认的排序规则。
+ COLLATE子句指定列的排序规则(该列必须是可排列的数据类型)。如果没有指定,则使用默认的排序规则。排序规则可以使用“SELECT * FROM pg_collation;”命令从pg_collation系统表中查询,默认的排序规则为查询结果中以default开始的行。
- **opclass**
diff --git a/content/zh/docs/Developerguide/CREATE-TABLE-PARTITION.md b/content/zh/docs/Developerguide/CREATE-TABLE-PARTITION.md
index a8e6427ce..9595882cf 100644
--- a/content/zh/docs/Developerguide/CREATE-TABLE-PARTITION.md
+++ b/content/zh/docs/Developerguide/CREATE-TABLE-PARTITION.md
@@ -127,7 +127,7 @@ CREATE TABLE [ IF NOT EXISTS ] partition_table_name
- **COLLATE collation**
- COLLATE子句指定列的排序规则(该列必须是可排列的数据类型)。如果没有指定,则使用默认的排序规则。
+ COLLATE子句指定列的排序规则(该列必须是可排列的数据类型)。如果没有指定,则使用默认的排序规则。排序规则可以使用“SELECT * FROM pg_collation;”命令从pg_collation系统表中查询,默认的排序规则为查询结果中以default开始的行。
- **CONSTRAINT constraint\_name**
diff --git a/content/zh/docs/Developerguide/CREATE-TABLE.md b/content/zh/docs/Developerguide/CREATE-TABLE.md
index 33d2fbfe0..20bab695f 100644
--- a/content/zh/docs/Developerguide/CREATE-TABLE.md
+++ b/content/zh/docs/Developerguide/CREATE-TABLE.md
@@ -129,7 +129,7 @@
- **COLLATE collation**
- COLLATE子句指定列的排序规则(该列必须是可排列的数据类型)。如果没有指定,则使用默认的排序规则。
+ COLLATE子句指定列的排序规则(该列必须是可排列的数据类型)。如果没有指定,则使用默认的排序规则。排序规则可以使用“SELECT * FROM pg_collation;”命令从pg_collation系统表中查询,默认的排序规则为查询结果中以default开始的行。
- **LIKE source\_table \[ like\_option ... \]**
diff --git a/content/zh/docs/Developerguide/CREATE-TYPE.md b/content/zh/docs/Developerguide/CREATE-TYPE.md
index 1e47be3c5..0785b36de 100644
--- a/content/zh/docs/Developerguide/CREATE-TYPE.md
+++ b/content/zh/docs/Developerguide/CREATE-TYPE.md
@@ -83,7 +83,7 @@ CREATE TYPE name AS ENUM
- **collation**
- 要关联到复合类型的一列的现有排序规则的名称。
+ 要关联到复合类型的一列的现有排序规则的名称。排序规则可以使用“SELECT * FROM pg_collation;”命令从pg_collation系统表中查询,默认的排序规则为查询结果中以default开始的行。
基本类型
diff --git a/content/zh/docs/Developerguide/GLOBAL_MEMORY_NODE_DETAIL.md b/content/zh/docs/Developerguide/GLOBAL_MEMORY_NODE_DETAIL.md
index 2a8178679..9ef5ea939 100644
--- a/content/zh/docs/Developerguide/GLOBAL_MEMORY_NODE_DETAIL.md
+++ b/content/zh/docs/Developerguide/GLOBAL_MEMORY_NODE_DETAIL.md
@@ -1,6 +1,6 @@
# GLOBAL\_MEMORY\_NODE\_DETAIL
-显示前openGauss中所有正常节点下的内存使用情况。
+显示当前openGauss中所有正常节点下的内存使用情况。
**表 1** GLOBAL\_MEMORY\_NODE\_DETAIL字段
diff --git a/content/zh/docs/Developerguide/GRANT.md b/content/zh/docs/Developerguide/GRANT.md
index b506ba066..fe5e139e9 100644
--- a/content/zh/docs/Developerguide/GRANT.md
+++ b/content/zh/docs/Developerguide/GRANT.md
@@ -8,7 +8,7 @@
- **将系统权限授权给角色或用户**
- 系统权限又称为用户属性,包括SYSADMIN、CREATEDB、CREATEROLE、AUDITADMIN和LOGIN。
+ 系统权限又称为用户属性,包括SYSADMIN、CREATEDB、CREATEROLE、AUDITADMIN、MONADMIN、OPRADMIN、POLADMIN和LOGIN。
系统权限一般通过CREATE/ALTER ROLE语法来指定。其中,SYSADMIN权限可以通过GRANT/REVOKE ALL PRIVILEGE授予或撤销。但系统权限无法通过ROLE和USER的权限被继承,也无法授予PUBLIC。
@@ -41,7 +41,7 @@
## 语法格式
-- 将表的访问权限赋予指定的用户或角色。
+- 将表或视图的访问权限赋予指定的用户或角色。
```
GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | ALTER | DROP | COMMENT | INDEX | VACUUM } [, ...]
@@ -53,17 +53,6 @@
```
-- 将视图的访问权限赋予指定的用户或角色。
-
- ```
- GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER | ALTER | DROP | COMMENT } [, ...]
- | ALL [ PRIVILEGES ] }
- ON { [ TABLE ] table_name [, ...]
- | ALL TABLES IN SCHEMA schema_name [, ...] }
- TO { [ GROUP ] role_name | PUBLIC } [, ...]
- [ WITH GRANT OPTION ];
- ```
-
- 将表中字段的访问权限赋予指定的用户或角色。
```
diff --git a/content/zh/docs/Developerguide/REVOKE.md b/content/zh/docs/Developerguide/REVOKE.md
index a3f4183ff..001a853a5 100644
--- a/content/zh/docs/Developerguide/REVOKE.md
+++ b/content/zh/docs/Developerguide/REVOKE.md
@@ -15,19 +15,7 @@ REVOKE用于撤销一个或多个角色的权限。
## 语法格式
-- 回收指定表上权限。
-
- ```
- REVOKE [ GRANT OPTION FOR ]
- { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | ALTER | DROP | COMMENT | INDEX | VACUUM }[, ...]
- | ALL [ PRIVILEGES ] }
- ON { [ TABLE ] table_name [, ...]
- | ALL TABLES IN SCHEMA schema_name [, ...] }
- FROM { [ GROUP ] role_name | PUBLIC } [, ...]
- [ CASCADE | RESTRICT ];
- ```
-
-- 回收指定视图上权限。
+- 回收指定表或视图上权限。
```
REVOKE [ GRANT OPTION FOR ]
diff --git "a/content/zh/docs/Developerguide/\351\273\230\350\256\244\346\235\203\351\231\220\346\234\272\345\210\266.md" "b/content/zh/docs/Developerguide/\351\273\230\350\256\244\346\235\203\351\231\220\346\234\272\345\210\266.md"
index 17f33c765..c7929ff5e 100644
--- "a/content/zh/docs/Developerguide/\351\273\230\350\256\244\346\235\203\351\231\220\346\234\272\345\210\266.md"
+++ "b/content/zh/docs/Developerguide/\351\273\230\350\256\244\346\235\203\351\231\220\346\234\272\345\210\266.md"
@@ -4,9 +4,9 @@
为使其他用户能够使用对象,必须向用户或包含该用户的角色授予必要的权限。
-openGauss支持以下的权限:SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、CREATE、CONNECT、EXECUTE和USAGE。不同的权限与不同的对象类型关联。有关各权限的详细信息,请参见[GRANT](GRANT.md)。
+openGauss支持以下的权限:SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、CREATE、CONNECT、EXECUTE、USAGE、ALTER、DROP、COMMENT、INDEX和VACUUM。不同的权限与不同的对象类型关联。有关各权限的详细信息,请参见[GRANT](GRANT.md)。
-要撤消已经授予的权限,可以使用[REVOKE](REVOKE.md)。对象所有者的权限(例如ALTER、 DROP、GRANT和REVOKE)是隐式的,无法授予或撤消。即只要拥有对象就可以执行对象所有者的这些隐式权限。对象所有者可以撤消自己的普通权限,例如,使表对自己以及其他人只读,系统管理员用户除外。
+要撤消已经授予的权限,可以使用[REVOKE](REVOKE.md)。对象所有者的权限(例如ALTER、 DROP、COMMENT、INDEX、VACUUM、GRANT和REVOKE)是隐式拥有的,无法授予或撤消。即只要拥有对象就可以执行对象所有者的这些隐式权限。对象所有者可以撤消自己的普通权限,例如,使表对自己以及其他人只读,系统管理员用户除外。
系统表和系统视图要么只对系统管理员可见,要么对所有用户可见。标识了需要系统管理员权限的系统表和视图只有系统管理员可以查询。 有关信息,请参考[系统表和系统视图](系统表和系统视图.md)。
--
Gitee