I have restarted interpreter after creating the entity in credential menu. It 
still doesn’t work. I think that, because this issue occurs with both 
credentials and when I set default.user, it is somehow an issue with how the 
snowflake driver is connecting with zeppelin’s jdbc driver. I tried tracing 
through the code on both ends but didn’t see any obvious issues. The stack 
trace shows the path the information is trying to travel:

ava.sql.SQLException: Missing user name.

at 
net.snowflake.client.jdbc.SnowflakeConnectionV1.<init>(SnowflakeConnectionV1.java:209)

at net.snowflake.client.jdbc.SnowflakeDriver.connect(SnowflakeDriver.java:350)

at java.sql.DriverManager.getConnection(DriverManager.java:664)

at java.sql.DriverManager.getConnection(DriverManager.java:208)

at 
org.apache.commons.dbcp2.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:79)

at 
org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:205)

at 
org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:836)

at 
org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:434)

at 
org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:361)

at org.apache.commons.dbcp2.PoolingDriver.connect(PoolingDriver.java:129)

at java.sql.DriverManager.getConnection(DriverManager.java:664)

at java.sql.DriverManager.getConnection(DriverManager.java:270)

at 
org.apache.zeppelin.jdbc.JDBCInterpreter.getConnectionFromPool(JDBCInterpreter.java:354)

at 
org.apache.zeppelin.jdbc.JDBCInterpreter.getConnection(JDBCInterpreter.java:372)

at org.apache.zeppelin.jdbc.JDBCInterpreter.executeSql(JDBCInterpreter.java:564)

at org.apache.zeppelin.jdbc.JDBCInterpreter.interpret(JDBCInterpreter.java:692)

at 
org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:95)

at 
org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:490)

at org.apache.zeppelin.scheduler.Job.run(Job.java:175)

at 
org.apache.zeppelin.scheduler.ParallelScheduler$JobRunner.run(ParallelScheduler.java:162)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)

at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)

at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

So the user information looks like it should be passing out of the zeppelin 
jdbc interpreter into java.sql.DriverManager. Is that what is happening in the 
working version you are testing with? If I can hunt down any better information 
about how the user/pass is being passed to java.sql.DriverManager I might be 
able to get some help from the snowflake people… perhaps it is an issue on 
their side? 

I see the following in JDBCInterpreter.java:

 

String

user

=

interpreterContext

.

getAuthenticationInfo()

.

getUser()

can I assume that is passing the proper user info to java.sql.DriverManager?

http://www.placeiq.com/ http://www.placeiq.com/ http://www.placeiq.com/

Paul Brenner

https://twitter.com/placeiq https://twitter.com/placeiq 
https://twitter.com/placeiq
https://www.facebook.com/PlaceIQ https://www.facebook.com/PlaceIQ
https://www.linkedin.com/company/placeiq 
https://www.linkedin.com/company/placeiq

DATA SCIENTIST

(217) 390-3033 

 

http://www.placeiq.com/2015/05/26/placeiq-named-winner-of-prestigious-2015-oracle-data-cloud-activate-award/
 
http://placeiq.com/2015/12/18/accuracy-vs-precision-in-location-data-mma-webinar/
 
http://placeiq.com/2015/12/18/accuracy-vs-precision-in-location-data-mma-webinar/
 
http://placeiq.com/2015/12/18/accuracy-vs-precision-in-location-data-mma-webinar/
 
http://placeiq.com/2015/12/18/accuracy-vs-precision-in-location-data-mma-webinar/
 
http://placeiq.com/2016/03/08/measuring-addressable-tv-campaigns-is-now-possible/
 
http://placeiq.com/2016/04/13/placeiq-joins-the-network-advertising-initiative-nai-as-100th-member/
 
http://placeiq.com/2016/04/13/placeiq-joins-the-network-advertising-initiative-nai-as-100th-member/
 
http://placeiq.com/2016/04/13/placeiq-joins-the-network-advertising-initiative-nai-as-100th-member/
 
http://placeiq.com/2016/04/13/placeiq-joins-the-network-advertising-initiative-nai-as-100th-member/
 
http://placeiq.com/2016/04/13/placeiq-joins-the-network-advertising-initiative-nai-as-100th-member/
 
http://pages.placeiq.com/Location-Data-Accuracy-Whitepaper-Download.html?utm_source=Signature&utm_medium=Email&utm_campaign=AccuracyWP
 
http://placeiq.com/2016/08/03/placeiq-bolsters-location-intelligence-platform-with-mastercard-insights/
 
http://placeiq.com/2016/10/26/the-making-of-a-location-data-industry-milestone/ 
http://placeiq.com/2016/12/07/placeiq-introduces-landmark-a-groundbreaking-offering-that-delivers-access-to-the-highest-quality-location-data-for-insights-that-fuel-limitless-business-decisions/

On Sat, Apr 22, 2017 at 11:16 PM moon soo Lee

<
mailto:moon soo Lee <m...@apache.org>
> wrote:

a, pre, code, a:link, body { word-wrap: break-word !important; }

Hmm that's strange. I can see 0.7.1 works as expected when I remove 
default.user/default.password and then set credential. Also i can set 
default.user, default.password without using credential menu and it works as 
expected as well.

Have you tried restart interpreter after create/update entity in credential 
menu? Credential does not apply until interpreter is restarted.

Thanks,

moon

On Sat, Apr 22, 2017 at 4:42 AM Paul Brenner <
mailto:pbren...@placeiq.com
> wrote:

Using 0.7.1 and yes I tried removing default.user/default.password after 
setting my credentials in the credentials section. It did not work. 

I found that actually setting the correct value for default.user did not work 
either. Same error. It seems like the zeppelin jdbc interpreter is not passing 
the defined user and password to the snowflake jdbc connector. 

However, I also was unable to set the 

zeppelin.jdbc.auth.type. I saw it should be able to take “SIMPLE” or “KERBEROS” 
as a value. Either option results in "

java.lang.ClassNotFoundException: 
org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod”. I’m not 
sure if that is related.

One more question. Here is what I see in the log files:

 INFO [2017-04-22 11:37:48,598] ({pool-2-thread-2} 
JDBCInterpreter.java[open]:159) - key: zeppelin, value: jdbc.auth.type INFO 
[2017-04-22 11:37:48,598] ({pool-2-thread-2} JDBCInterpreter.java[open]:159) - 
key: common, value: max_count INFO [2017-04-22 11:37:48,598] ({pool-2-thread-2} 
JDBCInterpreter.java[open]:159) - key: zeppelin, value: jdbc.principal INFO 
[2017-04-22 11:37:48,598] ({pool-2-thread-2} JDBCInterpreter.java[open]:159) - 
key: zeppelin, value: interpreter.localRepo INFO [2017-04-22 11:37:48,598] 
({pool-2-thread-2} JDBCInterpreter.java[open]:159) - key: default, value: url 
INFO [2017-04-22 11:37:48,598] ({pool-2-thread-2} 
JDBCInterpreter.java[open]:159) - key: default, value: driver INFO [2017-04-22 
11:37:48,601] ({pool-2-thread-2} JDBCInterpreter.java[open]:159) - key: 
zeppelin, value: jdbc.keytab.location INFO [2017-04-22 11:37:48,601] 
({pool-2-thread-2} JDBCInterpreter.java[open]:159) - key: zeppelin, value: 
jdbc.concurrent.use INFO [2017-04-22 11:37:48,601] ({pool-2-thread-2} 
JDBCInterpreter.java[open]:159) - key: zeppelin, value: 
jdbc.concurrent.max_connection ERROR [2017-04-22 11:37:48,601] 
({pool-2-thread-2} JDBCInterpreter.java[open]:177) - zeppelin will be ignored. 
driver.zeppelin and zeppelin.url is mandatory.

To make that a bit more readable I can trim it down to…

 INFO  - key: zeppelin, value: jdbc.auth.type

 INFO  - key: common, value: max_count

 INFO  - key: zeppelin, value: jdbc.principal

 INFO  - key: zeppelin, value: interpreter.localRepo

 INFO  - key: default, value: url

 INFO  - key: default, value: driver

 INFO  - key: zeppelin, value: jdbc.keytab.location

 INFO  - key: zeppelin, value: jdbc.concurrent.use

 INFO  - key: zeppelin, value: jdbc.concurrent.max_connection

ERROR  - zeppelin will be ignored. driver.zeppelin and zeppelin.url is 
mandatory.

So I can confirm that it isn’t trying to grab the default.user, but I don’t see 
anything that indicates it is trying to use credentials… Also is that ERROR 
relevant? 

http://www.placeiq.com/ http://www.placeiq.com/ http://www.placeiq.com/

Paul Brenner

https://twitter.com/placeiq https://twitter.com/placeiq 
https://twitter.com/placeiq
https://www.facebook.com/PlaceIQ https://www.facebook.com/PlaceIQ
https://www.linkedin.com/company/placeiq 
https://www.linkedin.com/company/placeiq

DATA SCIENTIST

tel:(217)%20390-3033
 

 

http://www.placeiq.com/2015/05/26/placeiq-named-winner-of-prestigious-2015-oracle-data-cloud-activate-award/
 
http://placeiq.com/2015/12/18/accuracy-vs-precision-in-location-data-mma-webinar/
 
http://placeiq.com/2015/12/18/accuracy-vs-precision-in-location-data-mma-webinar/
 
http://placeiq.com/2015/12/18/accuracy-vs-precision-in-location-data-mma-webinar/
 
http://placeiq.com/2015/12/18/accuracy-vs-precision-in-location-data-mma-webinar/
 
http://placeiq.com/2016/03/08/measuring-addressable-tv-campaigns-is-now-possible/
 
http://placeiq.com/2016/04/13/placeiq-joins-the-network-advertising-initiative-nai-as-100th-member/
 
http://placeiq.com/2016/04/13/placeiq-joins-the-network-advertising-initiative-nai-as-100th-member/
 
http://placeiq.com/2016/04/13/placeiq-joins-the-network-advertising-initiative-nai-as-100th-member/
 
http://placeiq.com/2016/04/13/placeiq-joins-the-network-advertising-initiative-nai-as-100th-member/
 
http://placeiq.com/2016/04/13/placeiq-joins-the-network-advertising-initiative-nai-as-100th-member/
 
http://pages.placeiq.com/Location-Data-Accuracy-Whitepaper-Download.html?utm_source=Signature&utm_medium=Email&utm_campaign=AccuracyWP
 
http://placeiq.com/2016/08/03/placeiq-bolsters-location-intelligence-platform-with-mastercard-insights/
 
http://placeiq.com/2016/10/26/the-making-of-a-location-data-industry-milestone/ 
http://placeiq.com/2016/12/07/placeiq-introduces-landmark-a-groundbreaking-offering-that-delivers-access-to-the-highest-quality-location-data-for-insights-that-fuel-limitless-business-decisions/

On Sat, Apr 22, 2017 at 1:21 AM moon soo Lee

<
mailto:moon+soo+lee+%3cm...@apache.org%3E
> wrote:

Hi,

Which version of Zeppelin are you using? Have you tried remove 'default.user' 
and 'default.password' property from interpreter menu and create entity in 
credential menu?

Thanks,

moon

On Fri, Apr 21, 2017 at 11:55 AM Paul Brenner <
mailto:pbren...@placeiq.com
> wrote:

Are credentials confirmed working with the JDBC interpreter? I’m trying to get 
jdbc working with snowflake. If I hardcore my username and password into the 
default url everything works great… but this of course won’t work in a multi 
user environment.

However, if I try to use default username, default password, or zeppelin 
credentials I get stuck at "

java.sql.SQLException: Missing user name.”

Sounds like a different issue than the OP.

http://www.placeiq.com/ http://www.placeiq.com/ http://www.placeiq.com/

Paul Brenner

https://twitter.com/placeiq https://twitter.com/placeiq 
https://twitter.com/placeiq
https://www.facebook.com/PlaceIQ https://www.facebook.com/PlaceIQ
https://www.linkedin.com/company/placeiq 
https://www.linkedin.com/company/placeiq

DATA SCIENTIST

tel:(217)%20390-3033
 

 

http://www.placeiq.com/2015/05/26/placeiq-named-winner-of-prestigious-2015-oracle-data-cloud-activate-award/
 
http://placeiq.com/2015/12/18/accuracy-vs-precision-in-location-data-mma-webinar/
 
http://placeiq.com/2015/12/18/accuracy-vs-precision-in-location-data-mma-webinar/
 
http://placeiq.com/2015/12/18/accuracy-vs-precision-in-location-data-mma-webinar/
 
http://placeiq.com/2015/12/18/accuracy-vs-precision-in-location-data-mma-webinar/
 
http://placeiq.com/2016/03/08/measuring-addressable-tv-campaigns-is-now-possible/
 
http://placeiq.com/2016/04/13/placeiq-joins-the-network-advertising-initiative-nai-as-100th-member/
 
http://placeiq.com/2016/04/13/placeiq-joins-the-network-advertising-initiative-nai-as-100th-member/
 
http://placeiq.com/2016/04/13/placeiq-joins-the-network-advertising-initiative-nai-as-100th-member/
 
http://placeiq.com/2016/04/13/placeiq-joins-the-network-advertising-initiative-nai-as-100th-member/
 
http://placeiq.com/2016/04/13/placeiq-joins-the-network-advertising-initiative-nai-as-100th-member/
 
http://pages.placeiq.com/Location-Data-Accuracy-Whitepaper-Download.html?utm_source=Signature&utm_medium=Email&utm_campaign=AccuracyWP
 
http://placeiq.com/2016/08/03/placeiq-bolsters-location-intelligence-platform-with-mastercard-insights/
 
http://placeiq.com/2016/10/26/the-making-of-a-location-data-industry-milestone/ 
http://placeiq.com/2016/12/07/placeiq-introduces-landmark-a-groundbreaking-offering-that-delivers-access-to-the-highest-quality-location-data-for-insights-that-fuel-limitless-business-decisions/

On Thu, Apr 20, 2017 at 8:49 PM moon soo Lee

<
mailto:moon+soo+lee+%3cm...@apache.org%3E
> wrote:

Hi,

If you remove 

'default.user'

'default.password'

properties from jdbc interpreter setting, then Zeppelin will use database 
username and password from credential database for each user.

I also created a patch [1] to use credential database when 'default'.user' and 
'default.password' is empty string.

Hope this helps.

Best,

moon

[1] 
https://github.com/apache/zeppelin/pull/2269

On Mon, Apr 10, 2017 at 3:37 AM Arpad Beregszaszi <
mailto:arpad.beregsza...@gmx.de
> wrote:

Hi all,

 

I’m pretty new with Zeppeln and I need help with one problem regarding data 
source authorization as its described here:

 

https://zeppelin.apache.org/docs/0.7.0/security/datasource_authorization.html

 

I can successfully connect Zeppelin to my MySQL Server. Now I want to give 
different users access to their databases.

For that I want the JDBC interpreter to use different database credentials, 
depending on the Zeppelin user as defined in shiro.ini.

But when I create credential information, the JDBC interpreter doesn’t use them 
for the db connection, but the default username and password, which is empty.

My Interpreter Is instantiated per user.

 

Java.sql.SQLException: Access denied for user ‘ ‘ @ ‘IP‘ (using password: NO)

 

Anyone an idea of whats wrong?

Thanks, Arpad

Reply via email to