Hi Valdimir, There are at least two problems that I've found here. The first is the query execution engine as you have just pointed out. The second one is the JDBC thin driver itself.
In JdbcThinTcpIo.handshake, it doesn't pass in user credentials (i.e., user & password) as shown below, so how can the server identify the user during the hand shaking? /** * Used for versions: 2.1.5 and 2.3.0. The protocol version is changed but handshake format isn't changed. * * @param ver JDBC client version. * @throws IOException On IO error. * @throws SQLException On connection reject. */ public void handshake(ClientListenerProtocolVersion ver) throws IOException, SQLException { BinaryWriterExImpl writer = new BinaryWriterExImpl(null, new BinaryHeapOutputStream(HANDSHAKE_MSG_SIZE), null, null); writer.writeByte((byte) ClientListenerRequest.HANDSHAKE); writer.writeShort(ver.major()); writer.writeShort(ver.minor()); writer.writeShort(ver.maintenance()); writer.writeByte(ClientListenerNioListener.JDBC_CLIENT); writer.writeBoolean(distributedJoins); writer.writeBoolean(enforceJoinOrder); writer.writeBoolean(collocated); writer.writeBoolean(replicatedOnly); writer.writeBoolean(autoCloseServerCursor); writer.writeBoolean(lazy); writer.writeBoolean(skipReducerOnUpdate); send(writer.array()); BinaryReaderExImpl reader = new BinaryReaderExImpl(null, new BinaryHeapInputStream(read()), null, null, false); boolean accepted = reader.readBoolean(); if (accepted) { if (reader.available() > 0) { byte maj = reader.readByte(); byte min = reader.readByte(); byte maintenance = reader.readByte(); String stage = reader.readString(); long ts = reader.readLong(); byte[] hash = reader.readByteArray(); igniteVer = new IgniteProductVersion(maj, min, maintenance, stage, ts, hash); } else igniteVer = new IgniteProductVersion((byte)2, (byte)0, (byte)0, "Unknown", 0L, null); } else { short maj = reader.readShort(); short min = reader.readShort(); short maintenance = reader.readShort(); String err = reader.readString(); ClientListenerProtocolVersion srvProtocolVer = ClientListenerProtocolVersion.create(maj, min, maintenance); if (VER_2_1_5.equals(srvProtocolVer)) handshake(VER_2_1_5); else if (VER_2_1_0.equals(srvProtocolVer)) handshake_2_1_0(); else { throw new SQLException("Handshake failed [driverProtocolVer=" + CURRENT_VER + ", remoteNodeProtocolVer=" + srvProtocolVer + ", err=" + err + ']', SqlStateCode.CONNECTION_REJECTED); } } } -- Sent from: http://apache-ignite-users.70518.x6.nabble.com/