云数据库 GAUSSDB-GRANT:参数说明
参数说明
GRANT的权限分类如下所示。
- SELECT
允许对指定的表、视图、序列执行SELECT命令,update或delete时也需要对应字段上的select权限。
- INSERT
允许对指定的表执行INSERT命令。
- UPDATE
允许对声明的表中任意字段执行UPDATE命令。通常,update命令也需要select权限来查询出哪些行需要更新。SELECT… FOR UPDATE和SELECT… FOR SHARE除了需要SELECT权限外,还需要UPDATE权限。
- DELETE
允许执行DELETE命令删除指定表中的数据。通常,delete命令也需要select权限来查询出哪些行需要删除。
- TRUNCATE
允许执行TRUNCATE语句删除指定表中的所有记录。
- REFEREN CES
创建一个外键约束,必须拥有参考表和被参考表的REFERENCES权限。
- CREATE
- 对于数据库,允许在数据库里创建新的模式。
- 对于模式,允许在模式中创建新的对象。如果要重命名一个对象,用户除了必须是该对象的所有者外,还必须拥有该对象所在模式的CREATE权限。
- 对于表空间,允许在表空间中创建表,允许在创建数据库和模式的时候把该表空间指定为缺省表空间。
- CONNECT
允许用户连接到指定的数据库。
- EXECUTE
允许使用指定的函数,以及利用这些函数实现的操作符。
- USAGE
- 对于过程语言,允许用户在创建函数的时候指定过程语言。
- 对于模式,USAGE允许访问包含在指定模式中的对象,若没有该权限,则只能看到这些对象的名称。
- 对于序列,USAGE允许使用nextval函数。
- 对于Data Source对象,USAGE是指访问权限,也是可赋予的所有权限,即USAGE与ALL PRIVILEGES等价。
- ALTER
允许用户修改指定对象的属性,但不包括修改对象的所有者和修改对象所在的模式。
- DROP
允许用户删除指定的对象。
- COMMENT
允许用户定义或修改指定对象的注释。
- INDEX
允许用户在指定表上创建索引,并管理指定表上的索引,还允许用户对指定表执行REINDEX和CLUSTER操作。
- VACUUM
允许用户对指定的表执行ANALYZE和VACUUM操作。
- ALL PRIVILEGES
一次性给指定用户/角色赋予所有可赋予的权限。只有系统管理员有权执行GRANT ALL PRIVILEGES。
GRANT的参数说明如下所示。
- role_name
已存在用户名称。
- table_name
已存在表名称。
- column_name
已存在字段名称。
- schema_name
已存在模式名称。
- database_name
已存在数据库名称。
- function_name
已存在函数名称。
- procedure_name
已存在存储过程名称。
- sequence_name
已存在序列名称。
- domain_name
已存在域类型名称。
- fdw_name
已存在外部数据包名称。
- lang_name
已存在语言名称。
- type_name
已存在类型名称。
- src_name
已存在的Data Source对象名称。
- argmode
参数模式。
取值范围:字符串,要符合标识符命名规范。
- arg_name
参数名称。
取值范围:字符串,要符合标识符命名规范。
- arg_type
参数类型。
取值范围:字符串,要符合标识符命名规范。
- loid
包含本页的大对象的标识符。
取值范围:字符串,要符合标识符命名规范。
- tablespace_name
表空间名称。
- client_master_key
取值范围:字符串,要符合标识符命名规范。
- column_encryption_key
取值范围:字符串,要符合标识符命名规范。
- directory_name
目录名称。
取值范围:字符串,要符合标识符命名规范。
- WITH GRANT OPTION
如果声明了WITH GRANT OPTION,则被授权的用户也可以将此权限赋予他人,否则就不能授权给他人。这个选项不能赋予PUBLIC。
非对象所有者给其他用户授予对象权限时,命令按照以下规则执行:
- 如果用户没有该对象上指定的权限,命令立即失败。
- 如果用户有该对象上的部分权限,则GRANT命令只授予他有授权选项的权限。
- 如果用户没有可用的授权选项,GRANT ALL PRIVILEGES形式将发出一个警告信息,其他命令形式将发出在命令中提到的且没有授权选项的相关警告信息。
数据库系统管理员可以访问所有对象,而不会受对象的权限设置影响。这个特点类似Unix系统的root的权限。和root一样,除了必要的情况外,建议不要总是以系统管理员身份进行操作。