Treat the actions as contextual, so they show up once items are selected, and in proximity to the column / dataset.
Solution 2 is not standard, but it does make obvious what items can be modified by an available action. If the primary use of the screen is for action based workflows, this might do the job.
I'm not sure what limitations you have in terms of screen real estate, but you can use space above the column (or make an overlay below) to have a button appear once the user has selected an item.
Here when only one column has selections:
Adding a number badge to the button allows them to see how many are selected, which is helpful for data heavy applications.
Once the last item is deselected (or the action initiates), the button disappears. Ideally you have a notification that follows a successful operation.
The downside to this approach is you might have some wide tables and a limited viewport, so it's not easy to see what's selected, and you have two sets (maybe more if there's more actions) of checkboxes.
Try to reduce the UI
Right now you have a visual gap between selecting an action and applying an action, without indication of how many records this affects.
You also have two labels: once in the selection control, and one for the button. It's redundancy without reward, as the other actions are buried in the dropdown menu, so it's a memory tax on the user (especially if you need to have more actions in the future).
You can see contextual actions in Gmail, where once you select emails, several icons appear for various actions: