默认权限机制

数据库对象创建后,进行对象创建的用户就是该对象的所有者。数据库安装后的默认情况下,未开启三权分立,数据库系统管理员具有与对象所有者相同的权限。也就是说对象创建后,默认只有对象所有者或者系统管理员可以查询、修改和销毁对象,以及通过GRANT将对象的权限授予其他用户。

为使其他用户能够使用对象,必须向用户或包含该用户的角色授予必要的权限。

openGauss支持以下的权限:SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、CREATE、CONNECT、EXECUTE、USAGE、ALTER、DROP、COMMENT、INDEX和VACUUM。不同的权限与不同的对象类型关联。有关各权限的详细信息,请参见GRANT

要撤消已经授予的权限,可以使用REVOKE。对象所有者的权限(例如ALTER、 DROP、COMMENT、INDEX、VACUUM、GRANT和REVOKE)是隐式拥有的,即只要拥有对象就可以执行对象所有者的这些隐式权限。对象所有者可以撤消自己的普通权限,例如,使表对自己以及其他人只读,系统管理员用户除外。

系统表和系统视图要么只对系统管理员可见,要么对所有用户可见。标识了需要系统管理员权限的系统表和视图只有系统管理员可以查询。 有关信息,请参考系统表和系统视图

数据库提供对象隔离的特性,对象隔离特性开启时,用户只能查看有权限访问的对象(表、视图、字段、函数),系统管理员不受影响。有关信息,请参考ALTER DATABASE

不建议用户修改系统表和系统视图的权限。

表1 ACL权限缩写

权限缩写对象类型
SELECTrTABLE, table column, SEQUENCE
INSERTaTABLE, table column
UPDATEwTABLE, table column, SEQUENCE
DELETEdTABLE
TRUNCATEDTABLE
REFERENCESxTABLE, table column
TRIGGERtTABLE
CREATECDATABASE, SCHEMA, TABLESPACE
CONNECTcDATABASE
TEMPORARYTDATABASE
EXECUTEXFUNCTION, PROCEDURE, PACKAGE
USAGEUSEQUENCE, DOMAIN, CLIENT_MASTER_KEY, COLUMN_ENCRYPTION_KEY, FOREIGN DATA WRAPPER, FOREIGN SERVER, LANGUAGE, SCHEMA, DATA SOURCE
ALTERATABLE, SEQUENCE, DATABASE, FOREIGN SERVER, FUNCTION, PROCEDURE, SCHEMA, TABLESPACE, DIRECTORY, PACKAGE
DROPPTABLE, SEQUENCE, DATABASE, CLIENT_MASTER_KEY, COLUMN_ENCRYPTION_KEY, FOREIGN SERVER, FUNCTION, PROCEDURE, SCHEMA, TABLESPACE, TYPE, DIRECTORY, PACKAGE
COMMENTmTABLE, table column, SEQUENCE, DATABASE, FOREIGN SERVER, FUNCTION, PROCEDURE, SCHEMA, TABLESPACE, PACKAGE
INDEXiTABLE
VACUUMvTABLE

表2 类型访问权限

对象类型所有权限默认PUBLIC权限gsql命令
TABLEarwdDxtAPmivnone\dp
table columnarwxmnone\dp
SEQUENCErwUAPmnone\dp
DATABASECTcAPmTc\l
CLIENT_MASTER_KEYUPnone
COLUMN_ENCRYPTION_KEYUPnone
FOREIGN DATA WRAPPERUnone\dew+
FOREIGN SERVERUAPmnone\des+
FUNCTIONXAPmX\df+
PROCEDUREXAPmX\df+
LANGUAGEUU\dL+
SCHEMAUCAPmnone\dn+
TABLESPACECAPmnone\dp
意见反馈
编组 3备份
    openGauss 2025-02-15 23:22:21
    取消