背景:因业务需要,需要使用beeline对hive数据进行查询,但是又不希望该用户可以查询所有的数据,希望有一个新用户bb给他指定的库表权限。
解决方案:
1.赋权语句,使用hive管理员用户在终端输入hive进入命令控制台:
> hive
-- 授予bb用户对特定数据库的select
> GRANT SELECT ON DATABASE db_name TO USER bb;
-- 授予bb用户单独表的select权限
> GRANT SELECT ON TABLE db_name.table_name TO USER bb;
注意:经过测试此处的用户bb无需在Linux系统中存在
2.使用beeline连接:
# beeline的默认端口号为10000
# 直接使用语句查询
beeline -u "jdbc:hive2://192.168.0.3:10000" -n bb -e "select * from db_name.table_name limit 3;"
# 直接使用sql文件进行查询
beeline -u "jdbc:hive2://192.168.0.3:10000" -n bb -f /data/test.sql
beeline -u jdbc:hive2://<HiveServer2_hostname>:<port>/<default_database> -n <username> -p <password>
在这里,<HiveServer2_hostname> 是HiveServer2所在的主机名或IP地址,<port> 是HiveServer2监听的端口号,<default_database> 是默认的数据库名(通常可以留空),<username> 和 <password> 是你的Hive用户名和密码。