Cyn*_*ech 53 mysql ubuntu privileges phpmyadmin grant
在你认为这是一个重复的问题之前,我相信我有一个独特的,即使它有点愚蠢的情况.
几天前,我将我的Ubuntu 10.04服务器上的MySQL版本升级到5.3.3(它超过了10.04的Ubuntu版本).今天,我尝试登录phpMyAdmin,发现了一些有些可怕的Connection for controluser as defined in your configuration failed错误.
在按照几个关于如何解决这个问题的SO问题的描述之后,我已经陷入困境.
flush privileges).granting access to database phpmyadmin for phpmyadmin@localhost: already exists
所以,这就是我留下的东西.我有一笔不能修改的补助金,也没有撤销:
mysql> show grants for 'phpmyadmin'@'localhost';
+-------------------------------------------------------------------------------------------------------------------+
| Grants for phpmyadmin@localhost |
+-------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY PASSWORD '*46CFC7938B60837F46B610A2D10C248874555C14' |
| GRANT ALL PRIVILEGES ON `phpmyadmin`.* TO 'phpmyadmin'@'localhost' |
+-------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.26 sec)
mysql> revoke usage on *.* from 'phpmyadmin'@'localhost';
ERROR 1141 (42000): There is no such grant defined for user 'phpmyadmin' on host 'localhost'
mysql> revoke usage on *.* from 'phpmyadmin'@'localhost' identified by 'trustno1';
ERROR 1141 (42000): There is no such grant defined for user 'phpmyadmin' on host 'localhost'
Run Code Online (Sandbox Code Playgroud)
(别担心,我不再使用此密码,但它是以前使用过的密码,而不是我为新的phpmyadmin安装选择的密码).
我如何完全删除这些拨款/特权?如果需要,我很高兴从头开始(phpmyadmin,不是数据库).
Flo*_*Doe 102
mysql中的USAGE特权只是意味着在全局级别上定义的用户'phpadmin'@'localhost'没有特权*.*.此外,同一用户对数据库phpmyadmin具有ALL权限phpadmin.*.
因此,如果您想要删除所有权限并从头开始,请执行以下操作:
撤消数据库级别的所有权限:
REVOKE ALL PRIVILEGES ON phpmyadmin.* FROM 'phpmyadmin'@'localhost';
删除用户'phpmyadmin'@'localhost'
DROP USER 'phpmyadmin'@'localhost';
上面的过程将完全从您的实例中删除用户,这意味着您可以从头开始重新创建他.
为了让您了解上述内容:只要您创建用户,mysql.user就会填充表格.如果查看其中的记录,您将看到用户和所有权限设置为'N'.如果你这样做,show grants for 'phpmyadmin'@'localhost';你会看到,所有已经熟悉的产品,输出如上.简单地翻译为"在用户的全球级别没有特权".现在您ALL在数据库级别授予此用户,这将存储在表中mysql.db.如果你这样做,SELECT * FROM mysql.db WHERE db = 'nameofdb';你会看到'Y'每一个私人.
上面描述了目前你的数据库上的场景.因此,拥有一个只有USAGE权限的用户,该用户可以连接,但除此之外SHOW GLOBAL VARIABLES; SHOW GLOBAL STATUS;他没有其他权限.
Rol*_*DBA 14
作为旁注,原因revoke usage on *.* from 'phpmyadmin'@'localhost';不起作用很简单:没有授权USAGE.
该补助金USAGE是一项合理的补助金.怎么样?'phpmyadmin'@'localhost' mysql.user在user ='phpmyadmin'和host ='localhost'中有一个条目.mysql.user中的任何行在语义上都是指USAGE.跑步DROP USER 'phpmyadmin'@'localhost';应该很好.在幕后,它真的这样做:
DELETE FROM mysql.user WHERE user='phpmyadmin' and host='localhost';
DELETE FROM mysql.db WHERE user='phpmyadmin' and host='localhost';
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
因此,从mysql.user构成运行中删除一行REVOKE USAGE,即使REVOKE USAGE不能逐字执行.
| 归档时间: |
|
| 查看次数: |
112443 次 |
| 最近记录: |