Identity assertion from drill via jdbc to the underlying database is needed. It's been years since I looked at this but most databases have a way of doing this. The technique was unique to each database in the past.
Keys _______________________________ Keys Botzum Senior Principal Technologist kbot...@maprtech.com 443-718-0098 MapR Technologies http://www.mapr.com On Oct 26, 2015 1:54 PM, "John Omernik" <j...@omernik.com> wrote: > So if I create a JDBC Storage Plugin with JSON below. I now have a storage > plugin available to all users in drill. There is no limiting who can use > that (that I can tell). So then in this case, I have a user (myuser) who > is authenticating to the Mysql server. That means, ALL users of drill will > have the access rights of myuser on the MySQL Server. This is not an ideal > situation. > > Ideally, we could have a "service" user of some sort connected between > Drill and the MySQL Server, this would be the equivalent of the super user > on drill. Then from there, we could create views with permissions (just > like filesystem based views) where we could select who could select from > view, allowing us to wrap some security around the situation. In a perfect > world, we'd have a way to pass the credentials to the JDBC driver from the > query, but that seems fraught with issues (usernames/passwords in the query > logs to start with). We could create multiple storage plugins for > different levels of access to the various JDBC tables, but we'd still have > no way of controlling who could use the various plugins. (Unless I am > missing something obvious here). Basically, as I see it now, there is no > way to limit who can use a storage plugin in drill. > > > Storage Plugins Creation: > > { > > "type": "jdbc", > > "driver": "com.mysql.jdbc.Driver", > > "url": "jdbc:mysql://localhost:3306/mydb", > > "username": "myuser", > > "password": "mypass", > > "enabled": false > > } > > > On Mon, Oct 26, 2015 at 12:00 PM, Neeraja Rentachintala < > nrentachint...@maprtech.com> wrote: > > > Hi John > > > > Can you please elaborate on what you mean by authentication to the source > > system is going to be wide open in Drill. > > > > Drill is a query layer on data sources and will respect the underlying > > storage permissions without having to manage centralized security > > permissions at Drill layer through user impersonation. Users can use > Drill > > views if they need more granular access to the data. > > > > I would be interested in learning more about your use case to secure the > > storage plugin/connections. > > > > thanks > > > > On Mon, Oct 26, 2015 at 6:33 AM, John Omernik <j...@omernik.com> wrote: > > > > > Hey all - > > > > > > On file system based storage plugins, security is straight forward with > > > filesystem permissions etc. How do we secure storage plugins? It > would > > > seem we would want a situation where people could not access certain > > > storage plugins especially since authentication to the source system is > > > going to be "wide open" (i.e. there is no pass through auth to a > backend > > > Mongo server, JDBC system, or Hbase setup) thus how do we wrap > security > > > around these? > > > > > > Even basic security... i.e. only X user can use them, so we can use > them > > to > > > load parquet tables or something where we can apply security. > > > > > > Thoughts? > > > > > > John > > > > > >