问题:无法更改例程。
我正在使用 mysql 5.1.47。我创建了一个名为“testuser”的用户和一个名为“abc1,abc2,abc3”的数据库。
一开始我试过
GRANT ALL ON *.* TO 'testuser'@'%';(also::> GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'%';)
同花顺特权;
也试过这个
GRANT ALL ON *.* TO 'testuser'@'%' IDENTIFIED BY 'passwd';
FLUSH PRIVILEGES;
这工作正常,用户 testuser 能够创建、更改例程。
然后我撤销了所有权限,甚至删除了用户 testuser 并再次创建了 testuser。然后我尝试了:
GRANT ALL ON abc1.* TO 'testuser'@'%';
也试过这个
GRANT ALL ON abc1.* TO 'testuser'@'%' IDENTIFIED BY 'passwd';
GRANT ALTER ROUTINE ON abc1.* TO 'testuser'@'%';
FLUSH PRIVILEGES;
通过使用上述方法(特别是 Db),我无法更改例程。我尝试了所有主机,如 localhost、%、127.0.0.1、本地 ip。我尝试使用工作台更改例程,它是空白的,没有任何错误。
但是 testuser 能够创建例程并能够编辑由 testuser 创建的例程。但是由其他一些用户创建的其他例程无法由 testuser 编辑(两个例程都在同一个数据库中)。
但是当我允许访问所有数据库时:
GRANT ALL ON *.* TO 'testuser'@'%';
FLUSH PRIVILEGES;
然后 testuser 能够编辑所有例程。请帮我解决这个问题。
谢谢。维杰