Limiting table access with a stored procedure

Limiting table access with a stored procedure

I want to allow my users to access a table for a single-use. I know that you can limit queries within an hour. Is there a way to limit them on a per-use basis? I want the privileges to be revoked once they're finished looking at it.

    Requires Free Membership to View

    When you register, my team of editors will also send you resources covering Linux administration and management; integration and interoperability between Linux, Windows and Unix; securing Linux and mixed-platform environments; and migrating to Linux.

    Margie Semilof, Editorial Director

    By submitting your registration information to SearchEnterpriseLinux.com you agree to receive email communications from TechTarget and TechTarget partners. We encourage you to read our Privacy Policy which contains important disclosures about how we collect and use your registration and other information. If you reside outside of the United States, by submitting this registration information you consent to having your personal data transferred to and processed in the United States. Your use of SearchEnterpriseLinux.com is governed by our Terms of Use. You may contact us at webmaster@TechTarget.com.

The GRANT statement provides the following access limitations on a user:

  • The number of queries per hour
  • The number of updates per hour
  • The number of connections to the server per hour
  • The number of simultaneous connections to the server

There is no built in method to limit the number of times a user may access a particular table outside of the per hour limits.

You can use stored procedures to limit user access to data. Construct a stored procedure that logs user access to the table (referencing the CURRENT_USER() function as needed), and exits early if the table has already been accessed. Give your users access only to the stored procedure, and not directly to the table itself.

This was first published in June 2007