You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@impala.apache.org by Vibhath Ileperuma <vi...@gmail.com> on 2021/11/09 14:09:29 UTC

Clarification on impala databases

Hi All,

We are currently using Impala's "default" database for keeping tables. When
querying through JDBC or ODBC connections, we don't mention the database
name explicitly with the table name since they are directed to the
'default' database by default. Now we are planning to enable Ranger
Authentication in impala.

   1. Is there any speciality in the "default" database in contrast to the
   custom databases? Will there be any issues if authentication is enabled for
   the "default" database?
   2. If it is required to use a custom database for enabling
   authentication, is there a way to configure impala to use that custom db
   when the db name is  not explicitly mentioned in queries?

I would be grateful if you could clarify the above two points.

Thank You.
Best regards,
Vibhath

Re: Clarification on impala databases

Posted by Joe McDonnell <jo...@cloudera.com>.
Hi Vibhath,

Ranger doesn't treat the default database specially, and it is capable of
authorizing access to the default database just like any other. For
example, Ranger can grant privileges on individual tables inside the
default database.

However, depending on the use case, it can be useful to have a database
without restrictions and the "default" database is often used that way. The
scenario that we mention in the documentation is that if a user is going to
drop a database, it can be useful to be able to switch to the default
database before executing the "DROP DATABASE" statement. This isn't a
requirement for using Ranger, but it might be easier to administer.

http://impala.apache.org/docs/build/html/topics/impala_authorization.html

When connecting via JDBC/ODBC, the database can be specified in the connect
string and the session would arrive in the custom database just like it
currently arrives in the default database. It is equivalent to running "USE
{database_name}" as the first statement after connecting, and the tables in
the database can be accessed without explicitly specifying the database in
the statements. The connection string syntax varies depending on which JDBC
driver is being used.

Thanks,
Joe

On Tue, Nov 9, 2021 at 6:09 AM Vibhath Ileperuma <
vibhatharunapriya@gmail.com> wrote:

> Hi All,
>
> We are currently using Impala's "default" database for keeping tables.
> When querying through JDBC or ODBC connections, we don't mention the
> database name explicitly with the table name since they are directed to the
> 'default' database by default. Now we are planning to enable Ranger
> Authentication in impala.
>
>    1. Is there any speciality in the "default" database in contrast to
>    the custom databases? Will there be any issues if authentication is enabled
>    for the "default" database?
>    2. If it is required to use a custom database for enabling
>    authentication, is there a way to configure impala to use that custom db
>    when the db name is  not explicitly mentioned in queries?
>
> I would be grateful if you could clarify the above two points.
>
> Thank You.
> Best regards,
> Vibhath
>
>
>