3) You can look at the userid and compare it against a table of IDs that you maintain. This is more work, since you will probably want to set up a form just to maintain the table (so the lead user can do it). But it works great if your application requires a table with user info anyway, or if you need to get very detailed about the functions assigned to a particular user.
Also, when you make the button invisible, you might also want to disable it:
me!ButtonName.enabled=false
And, you could have the buttons set up as disabled and invisible, and only turn them on for the right user.