Tuesday, 3 May 2022

MYSQL grant permission to user to tables with prefix

https://dba.stackexchange.com/questions/137124/wildcard-in-create-grant-in-mysql 

https://chartio.com/resources/tutorials/how-to-grant-all-privileges-on-a-database-in-mysql/#:~:text=To%20GRANT%20ALL%20privileges%20to,TO%20'username'%40'localhost'%3B

GRANT CREATE ON `foobar%`.* TO 'foobaruser'@'%' IDENTIFIED BY 'foobarpass';

FLUSH PRIVILEGES;
(GRANT ALL PRIVILEGES means everything)



And just test it:

foobaruser$ mysql
mysql> create database `foobar_one`;
Query OK, 1 row affected (0.00 sec)

mysql> create database `barfoo_one`;
ERROR 1044 (42000): Access denied for user 'foobaruser'@'localhost' to database 'barfoo_one'

Be aware that you need to escape the _ (underscore), as it acts like one character in the pattern. So «`foobar_`» will match foobar1 or foobarZ.

No comments:

Post a Comment