We're Moving!

The Vertica Forum is moving to a new OpenText Analytics Database (Vertica) Community.

Join us there to post discussion topics, learn about

product releases, share tips, access the blog, and much more.

Create My New Community Account Now


What is the best way to handle automating storage location grants across all available hosts? — Vertica Forum

What is the best way to handle automating storage location grants across all available hosts?

We have a need to automate the grant (storage location) across all nodes in our cluster after installation in some post-install scripts that we run. I know we need to use the ON 'node' clause of the GRANT statement, and I'm thinking we would want to query Vertica to get a list of nodes and then run a GRANT statement for each result. My question is - does this sound like a sane approach and if so, which table should I be querying to get that canonical list of all nodes?

Thanks!
- Rich

Comments

  • Prasanta_PalPrasanta_Pal - Select Field - Employee
    Are you looking for the below to get the Grant 'ON' node(?)

    dbadmin=> select * from nodes;
           node_name       |      node_id      | node_state | node_address | export_address |                          catalog_path                          | is_ephemeral
    -----------------------+-------------------+------------+--------------+----------------+----------------------------------------------------------------+--------------
     v_vertica613_node0001 | 45035996273704980 | UP         | 10.50.50.151 | 10.50.50.151   | /home/dbadmin/vertica613/v_vertica613_node0001_catalog/Catalog | f
     v_vertica613_node0002 | 45035996273719008 | UP         | 10.50.50.152 | 10.50.50.152   | /home/dbadmin/vertica613/v_vertica613_node0002_catalog/Catalog | f
     v_vertica613_node0003 | 45035996273719012 | UP         | 10.50.50.153 | 10.50.50.153   | /home/dbadmin/vertica613/v_vertica613_node0003_catalog/Catalog | f
     v_vertica613_node0004 | 45035996273719016 | UP         | 10.50.50.154 | 10.50.50.154   | /home/dbadmin/vertica613/v_vertica613_node0004_catalog/Catalog | f
     v_vertica613_node0005 | 45035996273719020 | UP         | 10.50.50.155 | 10.50.50.155   | /home/dbadmin/vertica613/v_vertica613_node0005_catalog/Catalog | f
     v_vertica613_node0006 | 45035996273719024 | UP         | 10.50.50.156 | 10.50.50.156   | /home/dbadmin/vertica613/v_vertica613_node0006_catalog/Catalog | f


  • Yeah exactly - I just wanted to make sure querying that table to get a list and then running the grants against that list sounded sane.
  • For anyone else that needs to do this, we handled this via a bash script:
    NODES='/opt/vertica/bin/vsql -U dbadmin -w $PASSWD -c 'SELECT node_name FROM v_catalog.nodes;' -t'  for NODE in $NODES  do    /opt/vertica/bin/vsql -U dbadmin -w $PASSWD -c "GRANT ALL ON LOCATION '/path/to/log.file' ON $NODE TO user"  done
     

Leave a Comment

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