全部,
是否可以修改 MySQL DB 的权限,或者我需要撤销它并再次授予它?
我的问题如下:
我在 Gentoo Linux 上运行 MySQL 服务器,我试图从 2 台不同的 Windows 机器远程连接(所有计算机都在我家的同一个网络上)。
当我无法连接时,我在 Gentoo 论坛上问了一个问题,并得到了一个运行建议:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION ;
我的猜测是我使用了其中一台机器的静态 IP 地址,因为我可以从一台 Windows 机器连接,但不能从另一台机器连接。
所以现在,我的问题是 - 是否可以发出类似的问题:
ALTER PRIVILEGES ON.....;
或者也许我可以做一些查询来解决这个问题?
谢谢你。
顺便说一句,有点离题:我找不到“远程访问”的标签。有人可以创建它吗?或者它不存在是有原因的?
编辑:
我实际上希望权限是这样的:
GRANT ALL ON foo.* TO bar@'192.168.1.x' IDENTIFIED BY 'PASSWORD';
这样我只能从 192.168.1.1 - 192.168.1.254 连接。我不需要这个服务器是公开可用的。
编辑2:
GRANT USAGE ON *.* TO 'root'@'192.168.1.4' IDENTIFIED BY PASSWORD '*DC365D603F605E79DE2F2B8DA969DBB8497BEC89'
GRANT ALL PRIVILEGES ON `draft`.* TO 'root'@'192.168.1.4' WITH GRANT OPTION
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*DC365D603F605E79DE2F2B8DA969DBB8497BEC89' WITH GRANT OPTION
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
编辑3:
我只是尝试执行以下命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@192.168.1.% IDENTIFIED BY '<my_password>' WITH GRANT OPTION;
我得到以下回复:
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '% IDENTIFIED BY '<my_password>'' at line 1 0.00041 sec
所以你可以做什么:
更新 mysql.user set host =' 192.168.1.3 where host='192.168.1.3' ;
刷新权限:
您不能在创建用户的单个查询中定义主机名范围。您需要为不同的 IP 创建相同的用户,或者您可以将 % 作为主机名,但我不建议这样做
让我知道是否需要更清楚
编辑
您不能在 mysql.user 表中定义主机名范围。为此,您可以创建具有相同角色但在不同 IP 上的相同用户。您必须为每个 IP 单独执行此操作。
更新
请尝试创建用户:
将选择授予 db 上的 'root'@'192.168.1.%'。* 由 'pass' 标识;
更新 2
这是因为 IP 应该作为字符串放在 '' 之间。
所以你去:
将 db_name.table_name 上的所有权限授予 'root'@'192.168.1.%' IDENTIFIED BY '' WITH GRANT OPTION;