- 最新动态
- 产品介绍
- 快速入门
- 用户指南
- 最佳实践
- 安全白皮书
- API参考
- SDK参考
-
常见问题
- 产品咨询
- 数据库连接
- 评估项目
- 迁移项目
- 视频帮助
- 文档下载
- 通用参考
展开导读
链接复制成功!
用户权限检查
三权分立检查
- 目标库为GaussDB时,开启三权分立,并迁移用户为SYSADMIN时,才会展现此检查项,其余情况,此检查项均不展示。
- 在开启三权分立后,如果SYSADMIN用户继续拥有安全管理员(拥有CREATEROLE权限)和审计管理员权限,这是来回切换权限模型导致的。如需从非三权分立权限管理模型切换至三权分立权限管理模型,应重新审视已有用户的权限集合,进行权限裁剪。
sysadmin权限检查
目标库为GaussDB、关闭三权分立,迁移用户为SYSADMIN时,展示此检查项,检查结果为“成功”。
创建Schema权限检查
目标库为GaussDB、迁移用户非SYSADMIN时,展示此检查项,检查迁移用户是否有权限在目标库创建schema,数据库对象需要在schema下创建。
赋权语句:GRANT CREATE ON DATABASE <db_name> TO <user>;
在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权。
此检查项为强制检查项。
创建/修改用户和角色权限检查
目标库为GaussDB,迁移用户为非SYSADMIN,并且迁移USER、ROLE、GRANT对象时,展示此检查项。检查迁移用户是否有权限在目标库实例下创建或修改用户和角色。
赋权语句:ALTER USER <user> WITH CREATEROLE;
- 在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权。
- 此检查项为强制检查项。
PUBLIC SCHEMA创建对象权限检查
目标库为GaussDB,迁移用户为普通用户或三权分立下的SYSADMIN用户时,展示此检查项,该权限较为复杂,涉及权限的组合。
在较低版本的GaussDB中(GaussDB V2.0-2.7及以下),需要拥有public Schema的CREATE权限,才可以创建表、视图、索引、序列、PACKAGE、类型、触发器等对象。
在较新版本的GaussDB中(GaussDB V2.0-3.1及以上),开启三权分立的SYSADMIN用户需要拥有public Schema的CREATE权限,才可以创建表、视图、索引、序列、PACKAGE、类型、触发器等对象。
在较新版本的GaussDB中(GaussDB V2.0-3.1及以上),普通用户需要拥有public Schema的CREATE权限,以及对象对应的 ANY 权限,如创建表或视图需要CREATE ANY TABLE权限、创建索引的CREATE ANY INDEX权限、创建序列的CREATE ANY SEQUENCE权限、创建PACKAGE的CREATE ANY PACKAGE权限、创建类型的CREATE ANY TYPE权限、创建触发器的CREATE ANY TYPE权限。
在三权分立的情况下,只有初始用户有权限在public Schema下创建函数、存储过程、同义词。
在非三权分立的情况下,只有初始用户和sysadmin用户有权限在public Schema下创建函数、存储过程、同义词。
public Schema的CREATE权限赋权语句:GRANT CREATE ON SCHEMA public TO <user>;
ANY权限赋权语句:
GRANT CREATE ANY TABLE TO <user>;//用户能够在public模式和用户模式下创建表或视图。
GRANT CREATE ANY SEQUENCE TO <user>;//用户能够在public模式和用户模式下创建序列。
GRANT CREATE ANY INDEX TO <user>;//用户能够在public模式和用户模式下创建索引。
GRANT CREATE ANY PACKAGE TO <user>;//用户能够在public模式和用户模式下创建PACKAGE。
GRANT CREATE ANY TYPE TO <user>;//用户能够在public模式和用户模式下创建类型。
GRANT CREATE ANY TRIGGER TO <user>;//用户能够在public模式和用户模式下创建触发器。
- 数据库实例会包含多个数据库,每个数据库都有自己的public Schema,赋权的时候需要在对应的数据库内执行。
- 在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权。
- 此检查项为非强制检查项,基于GaussDB的权限设计,检查结果固定为警告。
已存在Schema的权限检查
目标库为GaussDB,迁移用户为普通用户或三权分立下的SYSADMIN用户时,展示此检查项。
检查迁移用户是否有权限,目标库中若已经存在待迁移的schema,那么需要将此schema的owner授权给迁移用户,即需要使迁移用户成为此owner的成员。
赋权语句:GRANT <schema_owner> TO <user>;
在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权;也可使用schema_owner赋权。
迁移用户在权限不足的时候,是无法查询出schema的owner的,需要使用更高权限的用户来查询。
GRANT 表空间权限检查
目标库为GaussDB,迁移用户非SYSADMIN、并且迁移GRANT对象时,展示此检查项,检查迁移用户在目标库内的权限。
赋权语句:
GRANT <privilege> ON TABLESPACE <tablespace_name> TO <user>;
GRANT <privilege> ON TABLESPACE <tablespace_name> TO <user> WITH GRANT OPTION;
声明了WITH GRANT OPTION,则被授权的用户也可以将此权限赋予他人。
privilege包括CREATE、ALTER、DROP、COMMENT、CREATE WITH GRANT OPTION、ALTER WITH GRANT OPTION、DROP WITH GRANT OPTION、COMMENT WITH GRANT OPTION。
在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权。
GRANT 数据库权限检查
目标库为GaussDB,迁移用户非SYSADMIN、并且迁移GRANT对象时,展示此检查项,检查迁移用户在目标库内的权限。
赋权语句:
GRANT <privilege> ON DATABASE <db_name> TO <user>;
GRANT <privilege> ON DATABASE <db_name> TO <user> WITH GRANT OPTION;
声明了WITH GRANT OPTION,则被授权的用户也可以将此权限赋予他人。
privilege包括CREATE、CONNECT、TEMPORARY、ALTER、DROP、COMMENT、CREATE WITH GRANT OPTION、CONNECT WITH GRANT OPTION、ALTER WITH GRANT OPTION、TEMPORARY WITH GRANT OPTION、DROP WITH GRANT OPTION、COMMENT WITH GRANT OPTION。
在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权。
GRANT ANY权限检查
目标库为GaussDB,迁移用户非SYSADMIN、并且迁移GRANT对象时,展示此检查项,检查迁移用户是否有权限在目标库内将ANY权限授予其他用户。
赋权语句:GRANT <privilege> TO <user> WITH ADMIN OPTION;
声明了WITH ADMIN OPTION,被授权的用户可以将该权限再次授予其他角色或用户。
privilege包括CREATE ANY TABLE、ALTER ANY TABLE、DROP ANY TABLE、SELECT ANY TABLE、UPDATE ANY TABLE、INSERT ANY TABLE、DELETE ANY TABLE、CREATE ANY SEQUENCE、ALTER ANY SEQUENCE、DROP ANY SEQUENCE、SELECT ANY SEQUENCE、CREATE ANY INDEX、ALTER ANY INDEX、DROP ANY INDEX、CREATE ANY FUNCTION、EXECUTE ANY FUNCTION、CREATE ANY PACKAGE、EXECUTE ANY PACKAGE、CREATE ANY TYPE、ALTER ANY TYPE、DROP ANY TYPE、CREATE ANY SYNONYM、DROP ANY SYNONYM、CREATE ANY TRIGGER、ALTER ANY TRIGGER、DROP ANY TRIGGER。
数据库实例会包含多个数据库,ANY权限和数据库绑定,赋权时需要在对应的数据库内执行。
在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权。
GRANT pg_catalog Schema权限检查
目标库为GaussDB,迁移用户非SYSADMIN、并且迁移GRANT对象时,展示此检查项,检查迁移用户是否有权限在目标库内将pg_catalog Schema下的所有表的查询权限授予其他用户。
赋权语句:GRANT <privilege> TO <user> WITH ADMIN OPTION;
数据库实例会包含多个数据库,每个数据库都有自己的pg_catalog Schema,赋权时需要在对应的数据库内执行。
在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权。
GRANT database link权限检查
目标库为GaussDB,迁移用户非SYSADMIN、并且迁移GRANT对象时,展示此检查项,检查迁移用户是否有权限在目标库内将创建数据库连接权限授予其他用户。
赋权语句:GRANT CREATE PUBLIC DATABASE LINK TO <user> WITH GRANT OPTION;
数据库实例会包含多个数据库,赋权时需要在对应的数据库内执行。
在开启三权分立时,可使用初始用户赋权;关闭三权分立时,可使用SYSADMIN用户赋权。
GRANT 角色和用户授权权限检查
可使用关闭三权分立后创建的SYSADMIN用户执行迁移任务。