通过mysql管理创建用户,但无法登录mysql命令行
以下是在线建议,作为root发布的
grant all on *.* to new_user;
它起了作用,但从安全角度讲,却是一团糟,所以发布了。
revoke all on *.* from new_user;
现在new_user仍然可以连接,但是安全性是正常的,就像mysql管理中设置的那样。
对我来说这完全是胡说八道。到底是怎么回事,你是如何真正启用登录的?
这似乎是一个MySQL管理员问题(谢谢@marco)。如果在mysql命令行中发出相同的授权,则用户可以登录;但授予是在Administrator中发出的,则用户无法登录。
我正在处理一个Spring项目,并将FlyWay作为管理迁移的依赖项,我在SQL命令上犯了一个错误。当我运行这个项目时,我发现了一个错误,显示了脚本的问题,这是一个很容易修复的愚蠢错误,我拼错了一个列名。但是,来自天桥的撤销命令不起作用。
我试图使用FlyWay撤消迁移,并遵循FlyWay文档中的教程:
但是,我得到了这个输出:
C:\Users\leonardo.freitas\Documents\workspace\api>C:\Users\leonardo.freitas\Documents\workspace\flyway-9.8.1\flyway undo
A new vers
我想撤销mysql中的用户在特定表上的insert,我在前面尝试了以下代码:
use varian_db; REVOKE INSERT ON 'gevhm_users' FROM 'varian_user';但是mysql返回了以下错误:
#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 ''gevhm_users&
在尝试从远程主机获得连接时,我进行了大量的授权。所以我就这么做了:
GRANT ALL PRIVILEGES ON *.* TO 'prog'@'foobar-dev.foobar.com' WITH GRANT OPTION;
但是,'foobar-dev‘已经不存在了。对于其他不存在的主机,还有一大堆其他条目。
我做了以下撤销,希望mysql.user中的条目会消失:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'prog'@'foobar-dev.foobar.com'.
这会将
我已经在MySQL中设置了一些特定于表的授权,但是当我以MySQL用户身份登录时,它仍然可以完全访问所有表。我想抹去所有的拨款,重新开始。
我正在运行Debian Linux服务器,使用命令行命令,如下所示:
GRANT INSERT on database.someTable TO 'everyone'@'localhost';
(乘以30左右)
试图使用下面的单个命令撤销授予只会产生一些错误,说明没有需要删除的授予:
REVOKE all on database.* FROM 'everyone'@'localhost';
我
使用标准SQL -已经在PosgresQL和Oracle中多次这样做了??我希望对schema1中的所有表( secret到user1除外)授予一个选择。
grant select on schema1.* to user1;
revoke select on schema1.users from user1;
接收错误:
ERROR 1147 (42000): There is no such grant defined for user 'user1' on host '%' on table 'secret'
我做错了什么?
显然这是标准
我们有一个经常运行的进程,并在类型为innodb的mysql数据库上执行以下步骤。
SET autocommit = 0;
DELETE FROM table WHERE category='something';
-- every 300 rows or whatever is left in case of last round
INSERT IGNORE INTO table (fields) VALUES (row1),(row2),..,(row300);
-- check affected rows == number of rows given if no
我有一个具有数据库级权限的MySQL用户。
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER ON mydb.* TO 'theuser';
用户可以创建表并将行插入其中。
当用户超过限制(例如,计划中允许的行数)时,我想撤销INSERT特权。因此,用户不能再向表中插入新行。这是个有软性限制的计划。
我知道我可以执行以下查询:
REVOKE INSERT ON mydb.* FROM 'theuser';
但它不会影响到下一个use mydb。
根据MySQL文档:
授予表重新加载会影响每个现有客户端连接的权
当我将所有权限授予刚创建的新根帐户时,会出现此错误。
产生问题的步骤:
CREATE USER 'root'@'localhost';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
SHOW GRANTS for 'root'@'localhost';
在“显示授权”之后,我收到错误消息"mysql没有为主机‘localhost’上的用户'root‘定义这样
正如标题所说,然而,我已经尝试了所有方法来阻止用户修改这个表,但没有运气
由于某些原因,mySQL 5.5手册中不存在拒绝,因此以下命令不起作用
DENY ALL ON OBJECT::database.table TO user
DENY ALL ON database.table TO 'user'@'localhost'
REVOKE ALL ON database.table TO 'user'@'localhost'
最后一个命令给出了这个错误
There is no such grant defined for use
我需要添加一个能够读取我所有数据库的用户。所以我创造了:
create user 'reader' identified by 'password';
grant select on *.* to 'reader';
这方面的问题是,用户也能够读取系统表,比如mysql.user,我认为这是一个安全问题。我试图撤销该表上的select特权:
revoke SELECT ON mysql.* from 'reader';
但我得到
ERROR 1141 (42000): There is no such grant defined