Hive命令行权限管理包括授权与撤销操作。通过SHOW命令查看用户和角色权限,使用GRANT语句进行角色、表、数据库级别的授权,REVOKE语句对称撤销权限。所有变更后需执行FLUSHPRIVILEGES刷新缓存,操作需管理员权限。
动手之前,总得知道当前有什么权限、谁有什么角色吧?用下面几条命令可以快速探查:
SHOW GRANT USER user_name; —— 看看某个用户都有哪些权限。SHOW GRANT ROLE role_name; —— 查查某个角色具体拥有什么权限。SHOW ROLE grant_role; —— 这个命令用来查看角色被授予给哪些用户或组。授权分几个层次:角色、表、数据库。操作模式其实挺一致的,区别只在于目标对象。
长期稳定更新的攒劲资源: >>>点此立即查看<<<
GRANT [ROLE] role_name TO USER user_name;,比如 GRANT ADMIN ROLE admin_user;。同样的逻辑,GRANT [ROLE] role_name TO GROUP group_name; 可以把角色赋予一个用户组,比如 GRANT DATA ANALYST ROLE data_analyst_group;。GRANT [TABLE] table_name ON CLUSTER cluster_name TO USER user_name;,例如 GRANT SELECT, INSERT ON TABLE sales TO USER sales_user;。如果想把表权限给一个组,只需把 USER 换成 GROUP 即可。GRANT [DB] database_name ON CLUSTER cluster_name TO USER user_name;,比如 GRANT SELECT, INSERT ON DATABASE ecommerce TO USER ecommerce_user;。同理,对组的操作也就是把 USER 换成 GROUP。
撤销命令和授权命令的结构几乎是对称的,只是把 GRANT ... TO 换成了 REVOKE ... FROM。
REVOKE [ROLE] role_name FROM USER user_name;,例如 REVOKE ADMIN ROLE admin_user FROM user1;。对组也一样:REVOKE [ROLE] role_name FROM GROUP group_name;。REVOKE [TABLE] table_name ON CLUSTER cluster_name FROM USER user_name;,以及针对组的版本。REVOKE [DB] database_name ON CLUSTER cluster_name FROM USER user_name;,同理也有针对组的版本。所有权限变更操作执行完毕后,一定要运行 FLUSH PRIVILEGES; 命令来刷新权限缓存,否则修改不会立即生效。这一点很容易被忽略,但很重要。
最后提醒一下:执行这些命令的用户必须拥有管理员或高级权限(通常就是 hive 用户自身)。另外,操作前最好先确认一下公司或平台的安全与合规要求,避免因权限误配带来风险。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述