默认权限机制
数据库对象创建后,进行对象创建的用户就是该对象的所有者。数据库安装后的默认情况下,未开启三权分立,数据库系统管理员具有与对象所有者相同的权限。也就是说对象创建后,默认只有对象所有者或者系统管理员可以查询、修改和销毁对象,以及通过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权限缩写
权限 | 缩写 | 对象类型 |
---|---|---|
SELECT | r | TABLE, table column, SEQUENCE |
INSERT | a | TABLE, table column |
UPDATE | w | TABLE, table column, SEQUENCE |
DELETE | d | TABLE |
TRUNCATE | D | TABLE |
REFERENCES | x | TABLE, table column |
TRIGGER | t | TABLE |
CREATE | C | DATABASE, SHEMA, TABLESPACE |
CONNECT | c | DATABASE |
TEMPORARY | T | DATABASE |
EXECUTE | X | FUNCTION, PROCEDURE, PACKAGE |
USAGE | U | SEQUENCE, DOMAIN, CLIENT_MASTER_KEY, COLUMN_ENCRYPTION_KEY, FOREIGN DATA WRAPPER, FOREIGN SERVER, LANGUAGE, SCHEMA, DATA SOURCE |
ALTER | A | TABLE, SEQUENCE, DATABASE, FOREIGN SERVER, FUNCTION, PROCEDURE, SCHEMA, TABLESPACE, DIRECTORY, PACKAGE |
DROP | P | TABLE, SEQUENCE, DATABASE, CLIENT_MASTER_KEY, COLUMN_ENCRYPTION_KEY, FOREIGN SERVER, FUNCTION, PROCEDURE, SCHEMA, TABLESPACE, TYPE, DIRECTORY, PACKAGE |
COMMENT | m | TABLE, table column, SEQUENCE, DATABASE, FOREIGN SERVER, FUNCTION, PROCEDURE, SCHEMA, TABLESPACE, PACKAGE |
INDEX | i | TABLE |
VACUUM | v | TABLE |
表2 类型访问权限
对象类型 | 所有权限 | 默认PUBLIC权限 | gsql命令 |
---|---|---|---|
TABLE | arwdDxtAPmiv | none | \dp |
table column | arwxm | none | \dp |
SEQUENCE | rwUAPm | none | \dp |
DATABASE | CTcAPm | Tc | \l |
CLIENT_MASTER_KEY | UP | none | |
COLUMN_ENCRYPTION_KEY | UP | none | |
FOREIGN DATA WRAPPER | U | none | \dew+ |
FOREIGN SERVER | UAPm | none | \des+ |
FUNCTION | XAPm | X | \df+ |
PROCEDURE | XAPm | X | \df+ |
LANGUAGE | U | U | \dL+ |
SCHEMA | UCAPm | none | \dn+ |
TABLESPACE | CAPm | none | \dp |