MySQL在哪里存储“特定于数据库”的权限?

时间:2012-11-20 01:26:10

标签: mysql

我假设它在数据库文件夹中。但是......哪里可以呢?


运行FLUSH PRIVILEGES解决了问题。我复制了mysql文件夹,但没有重新启动服务器。

2 个答案:

答案 0 :(得分:1)

它们通常存储在“mysql”数据库中。

http://dev.mysql.com/doc/refman/5.5/en//grant-table-structure.html所示,该表称为“db”

mysql> use mysql;
mysql> show tables;

+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+    

授予对特定数据库的访问权限,使用:

GRANT SELECT ON database.* TO user@'localhost';
GRANT SELECT ON database.* TO user@'localhost' IDENTIFIED BY 'password';

答案 1 :(得分:0)

运行SHOW GRANTS(或其更具体的变体,如SHOW GRANTS FOR 'user'@'host'SHOW GRANTS FOR CURRENT_USER)以获取权限信息。

如果您希望将结果作为SQL结果集,您还可以从mysql数据库获取信息,如julumme的答案中所示。

相关问题