Vertica driver for VSCode SQLTools does not provide audit information

Hi,

Recently I start observing sessions in Vertica that does not have any audit info, like client OS username, client_OS_hostname, client type, client version etc.
Those connections show ancient protocol version 3.5

After some digging, it appears Vertica released driver for VSCode SQLTools. New driver is just rebranding of PgSql driver that was there before, and keeps using old protocol.

That is a very poor practice from Vertica. All drivers should provide full audit info, no exception.

Please ask client team to update driver, it has to provide all audit fields on connections.

Thank you
Sergey

Tagged:

Answers

  • SruthiASruthiA Administrator

    @Sergey_Cherepan_1 : I am able to reproduce the issue locally using VSCode and have created a JIRA for it

    -[ RECORD 3 ]--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


    node_name | v_eonv23_node0001
    user_name | dbadmin
    client_hostname | 10.100.245.54:54716
    client_pid |
    login_timestamp | 2024-02-01 16:12:59.428574-05
    session_id | v_eonv23_node0001-351873:0x91b0c5
    idle_session_timeout |
    grace_period |
    client_label |
    transaction_start | 2024-02-01 16:12:59.490284-05
    transaction_id | 45035996274006785
    transaction_description | user dbadmin (SELECT UPPER(keyword) AS label, CASE WHEN reserved = 'R' THEN 'RESERVED' ELSE 'UNRESERVED' END AS reserved FROM keywords;)
    statement_start | 2024-02-01 16:13:04.719697-05
    statement_id |
    last_statement_duration_us | 67611
    runtime_priority |
    current_statement |
    last_statement | select * from nodes
    ssl_state | None
    tls_version |
    authentication_method | ImpTrust
    client_type |
    client_version |
    client_os |
    client_os_user_name |
    client_os_hostname |
    client_authentication_name | default: Implicit Trust
    client_authentication | 0
    requested_protocol | 3.5
    effective_protocol | 3.5
    external_memory_kb | 0
    temp_table_impaired | f
    -[ RECORD 4 ]--------------+--------------

  • @SruthiA big thanks!

    Audit things are very scary and has to be done properly.

  • SruthiASruthiA Administrator
    edited February 21

    @Sergey_Cherepan_1 : VSCode SQLTools Vertica driver v0.0.2 has been released. now sessions table should have client information.

    https://github.com/vertica/sqltools-vertica-driver/releases/tag/v0.0.2

  • Great!
    Thanks!
    Will push users to try today.

  • Works!
    Client type reported as Node.js Driver, and label by default set to VSCode SQLTools Vertica driver. It is as good as it can be.
    Audit fields populated properly.
    I can see client_os_hostname is populated without domain name. It is strange because everybody else populates with domain. It can be a client OS settings. Quite possible some method in Node.js return hostname without domain.

    I think we should circle back to developer and ask to confirm that hostname is populated in full with domain.

  • SruthiASruthiA Administrator

    Thank you for the update. Sure I will check with engineering on hostname with full domain

  • SruthiASruthiA Administrator

    The client_os_hostname is the hostname as reported by the os. It is configurable with the right permissions. What client_os_hostname reports is the equivalent to what you get when you run the "hostname" command in your terminal.

  • That is not hard to check, I will ask user to use VSCode and DbVis at same time, will see what they will report.

  • Confirming, vsql report same client OS hostname as Node.js driver.
    Thank you for help!

  • SruthiASruthiA Administrator

    awesome. good to know that it works for you.

Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Emoji
Image
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file