impala授权

SHOW CREATE table hue.auth_permission;
ALTER TABLE hue.auth_permission DROP FOREIGN KEY content_type_id_refs_id_id value;
DELETE FROM hue.django_content_type;
ALTER TABLE hue.auth_permission ADD FOREIGN KEY (content_type_id) REFERENCES django_content_type (id);

为HDFS定义URI时,还必须指定NameNode。例如:
GRANT ALL ON URI文件:/// path / to / dir TO <role>
GRANT ALL ON URI hdfs:// namenode:port / path / to / dir TO <role>
GRANT ALL ON URI hdfs:// ha -nn-uri / path / to / dir TO <role>
管理用户的权限示例
在此示例中,SQL语句授予 entire_server 角色服务器中的数据库和URI的所有特权。

CREATE ROLE whole_server;
GRANT ROLE whole_server TO GROUP admin_group;
GRANT ALL ON SERVER server1 TO ROLE whole_server;


具有特定数据库和表的权限的用户
如果用户具有特定数据库中特定表的权限,则用户可以访问这些内容,但不能访问其他内容。他们可以在输出中看到表及其父数据库 显示表格 和 显示数据库, 使用 适当的数据库,并执行相关的行动(选择 和/或 插)基于表权限。要实际创建表需要所有 数据库级别的权限,因此您可以为用户设置单独的角色,以设置架构以及对表执行日常操作的其他用户或应用程序。
CREATE ROLE one_database;
GRANT ROLE one_database TO GROUP admin_group;
GRANT ALL ON DATABASE db1 TO ROLE one_database;

CREATE ROLE instructor;
GRANT ROLE instructor TO GROUP trainers;
GRANT ALL ON TABLE db1.lesson TO ROLE instructor;

# This particular course is all about queries, so the students can SELECT but not INSERT or CREATE/DROP.
CREATE ROLE student;
GRANT ROLE student TO GROUP visitors;
GRANT SELECT ON TABLE db1.training TO ROLE student;

使用外部数据文件的权限
通过数据插入数据时 负载数据 语句,或从普通Impala数据库目录之外的HDFS位置引用,用户还需要对与这些HDFS位置对应的URI的适当权限。

在这个例子中:

该 external_table 角色可以插入并查询Impala表, external_table.sample。
该 STAGING_DIR角色可以指定HDFS路径/用户/ Cloudera的/ external_data与负载数据声明。当Impala查询或加载数据文件时,它会对该目录中的所有文件进行操作,而不仅仅是单个文件,因此任何Impala都可以位置 参数指的是目录而不是单个文件。
CREATE ROLE external_table; 
GRANT ROLE external_table TO GROUP cloudera; 
GRANT ALL ON TABLE external_table.sample TO ROLE external_table; 

CREATE ROLE staging_dir; 
GRANT ROLE staging TO GROUP cloudera; 
GRANT ALL ON URI'hdfs://127.0.0.1:8020 / user / cloudera / external_data'TO ROLE staging_dir;

将管理员职责与读写权限分开
要创建数据库,您需要该数据库的完全权限,而对该数据库中的表的日常操作可以在特定表上使用较低级别的权限执行。因此,您可以为每个数据库或应用程序设置单独的角色:可以创建或删除数据库的管理角色,以及只能访问相关表的用户级角色。

在此示例中,职责分为3个不同组中的用户:
CREATE ROLE training_sysadmin;
GRANT ROLE training_sysadmin TO GROUP supergroup;
GRANT ALL ON DATABASE training1 TO ROLE training_sysadmin;

CREATE ROLE instructor;
GRANT ROLE instructor TO GROUP cloudera;
GRANT ALL ON TABLE training1.course1 TO ROLE instructor;

CREATE ROLE visitor;
GRANT ROLE student TO GROUP visitor;
GRANT SELECT ON TABLE training1.course1 TO ROLE student;

server=server_name->db=database_name->table=table_name->action=SELECT
server=server_name->db=database_name->table=table_name->action=ALL

server=impala-host.example.com->db=default->table=t1->action=SELECT
server=impala-host.example.com->db=*->table=audit_log->action=SELECT
server=impala-host.example.com->db=default->table=t1->action=*


 

猜你喜欢

转载自blog.csdn.net/haoxiaoyan/article/details/81773257