GRANT

          PALO

          GRANT

          GRANT

          Description

          GRANT 命令用于赋予指定用户或角色指定的权限。

          授予数据库、表权限:

          GRANT privilege_list
          ON db_name[.tbl_name]
          TO user_identity [ROLE role_name]

          授予资源权限:

          GRANT privilege_list
          ON RESOURCE resource_name
          TO user_identity [ROLE role_name]
          • privilege_list

            需要赋予的权限列表,以逗号分隔。

            当前 DORIS 支持如下权限:

            • ADMIN_PRIV:除节点管理外的所有权限。
            • GRANT_PRIV:操作权限的权限。包括创建删除用户、角色,授权和撤权,设置密码等。
            • SELECT_PRIV:对指定的库或表的读取权限
            • LOAD_PRIV:对指定的库或表的导入权限
            • ALTER_PRIV:对指定的库或表的schema变更权限
            • CREATE_PRIV:对指定的库或表的创建权限
            • DROP_PRIV:对指定的库或表的删除权限
            • USAGE_PRIV:对指定资源的使用权限

            另外还有两个语法糖权限可以用于快速授权:

            • ALL

              类似读写权限。等同于授予:

              SELECT_PRIV,LOAD_PRIV,ALTER_PRIV,CREATE_PRIV,DROP_PRIV

              这些权限。

            • READ_ONLY

              类似只读权限,等同于 SELECT_PRIV

            权限分类:

            1. 库表权限:SELECT_PRIV,LOAD_PRIV,ALTER_PRIV,CREATE_PRIV,DROP_PRIV
            2. 资源权限:USAGE_PRIV
          • db_name[.tbl_name] 支持以下三种形式:

            1. *.*:权限可以应用于所有库及其中所有表。
            2. db.*:权限可以应用于指定库下的所有表。
            3. db.tbl:权限可以应用于指定库下的指定表。

            这里指定的库或表可以是不存在的库和表。

          • resource_name 支持以下两种形式:

            1. *:权限应用于所有资源。
            2. resource:权限应用于指定资源。

            这里指定的资源可以是不存在的资源。

          • user_identity

            这里的 user_identity 语法同 CREATE USER 中的语法。且必须为使用 CREATE USER 创建过的 user_identityuser_identity 中的 host 可以是域名,如果是域名的话,权限的生效时间可能会有1分钟左右的延迟。

            也可以将权限赋予指定的 ROLE,如果指定的 ROLE 不存在,则会自动创建。

          Example

          1. 授予所有库和表的权限给用户

            GRANT SELECT_PRIV ON *.* TO 'jack'@'%';
          2. 授予指定库表的权限给用户

            GRANT SELECT_PRIV,ALTER_PRIV,LOAD_PRIV ON db1.tbl1 TO 'jack'@'192.8.%';
          3. 授予指定库表的权限给角色

            GRANT LOAD_PRIV ON db1.* TO ROLE 'my_role';
          4. 授予所有资源的使用权限给用户

            GRANT USAGE_PRIV ON RESOURCE * TO 'jack'@'%';
          5. 授予指定资源的使用权限给用户

            GRANT USAGE_PRIV ON RESOURCE 'odbc_resource' TO 'jack'@'%';
          6. 授予指定资源的使用权限给角色

            GRANT USAGE_PRIV ON RESOURCE 'odbc_resource' TO ROLE 'my_role';

          Keywords

          GRANT
          上一篇
          REVOKE
          下一篇
          CREATE-ROLE