我有一个mysql用户帐户,它具有以下全局特权
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, PROCESS, REFERENCES, INDEX, ALTER,
SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW,
CREATE ROUTINE, ALTER ROUTINE, EVENT,
TRIGGER ON *.* TO 'maintenance'@'host' IDENTIFIED BY PASSWORD 'password';我需要撤销该用户在某些表上的插入、删除或更新权限。所以,我试过这个
mysql> REVOKE INSERT, DELETE, UPDATE ON Hotels.AllHotels FROM 'user'@'host';A我看到以下错误
错误1147 (42000):没有为“AllHotels”表上的“主机”上的用户“用户”定义此类授予
我作为mysql根用户执行上述操作。
有人能帮忙吗?
发布于 2014-01-23 16:47:50
使用此脚本可以帮助您创建授予脚本语法:运行root od mysql管理用户。
select 'grant all privileges on ', table_name, 'to
someuser@somehost;' from information_schema.tables where table_schema = 'database name' and
table_name not in ('table without access', 'table without access');这将创建一个可以运行的输出。
mysql> grant select on BASE_BIB.* to test123@'%' identified by 'test';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> use BASE_BIB;
Database changed
mysql> show tables ;mysql> revoke select on BASE_BIB.users from test123@'%';
ERROR 1147 (42000): There is no such grant defined for user 'test123' 在表“用户”上的主机'%‘
mysql> grant select on BASE_BIB.users to test123@'%' identified by 'test';
Query OK, 0 rows affected (0.00 sec)
mysql> revoke select on BASE_BIB.users from test123@'%';
Query OK, 0 rows affected (0.00 sec)在mysql中管理访问可能会非常困难!!
一旦你给了他数据库。*你不能撤销对那个类中的对象的访问。MySQL不会将Hotels.*通配符展开到各个表中,权限表存储已授予的权限。因此,由于您实际上没有在Hotels.AllHotels上授予任何内容,所以MySQL没有什么可撤销的。在这种情况下,您需要从一开始就这样做!
上的所有特权。
https://dba.stackexchange.com/questions/57377
复制相似问题