mysql - MySQL GRANT 被接受但未应用
问题描述
我很困惑。我正在我的开发服务器上创建一个数据库,并为所述数据库创建一个用户。我已经这样做了一百万次,但现在我在 MySql 8 中工作。这是我正在尝试的:
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Server version: 8.0.27-0ubuntu0.20.04.1 (Ubuntu)
mysql> GRANT ALL PRIVILEGES ON * . * TO 'zak'@'localhost';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
$ mysql -u zak -p
Welcome to the MySQL monitor. Commands end with ; or \g.
Server version: 8.0.27-0ubuntu0.20.04.1 (Ubuntu)
mysql> GRANT ALL PRIVILEGES ON wp_zakattack . * TO 'adm_zakattack'@'localhost';
ERROR 1044 (42000): Access denied for user 'zak'@'localhost' to database 'wp_zakattack'
mysql> show grants;
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for zak@localhost |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `zak`@`localhost` |
| GRANT APPLICATION_PASSWORD_ADMIN,AUDIT_ADMIN,AUTHENTICATION_POLICY_ADMIN,BACKUP_ADMIN,BINLOG_ADMIN,BINLOG_ENCRYPTION_ADMIN,CLONE_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,FLUSH_OPTIMIZER_COSTS,FLUSH_STATUS,FLUSH_TABLES,FLUSH_USER_RESOURCES,GROUP_REPLICATION_ADMIN,GROUP_REPLICATION_STREAM,INNODB_REDO_LOG_ARCHIVE,INNODB_REDO_LOG_ENABLE,PASSWORDLESS_USER_ADMIN,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_APPLIER,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SERVICE_CONNECTION_ADMIN,SESSION_VARIABLES_ADMIN,SET_USER_ID,SHOW_ROUTINE,SYSTEM_USER,SYSTEM_VARIABLES_ADMIN,TABLE_ENCRYPTION_ADMIN,XA_RECOVER_ADMIN ON *.* TO `zak`@`localhost` |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
我知道我可以像 root 一样轻松地做到这一点。但是当它投入生产时,我禁用了 root 用户,并且这些操作由使用配置编辑器进行无密码登录的 bash 脚本处理。IEmysql --login-path=data-main
所以我需要用户'zak'@'localhost'
能够GRANT
访问特定的用户和表。我缺少什么明显的东西吗?
解决方案
您没有zak
授予授予特权的特权。这不包括在ALL PRIVILEGES
.
mysql> GRANT ALL PRIVILEGES ON *.* TO 'zak'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)
推荐阅读
- c# - 有没有办法从命令行运行本地 Roslyn 分析器(并应用代码修复)
- testing - 测试链接 | 看不到任何创建新项目的选项 |
- linux - 在 Cron 上运行 Bash 脚本:Centos7
- grafana-loki - 如何使用 promtail 将 kubernetes 标签添加到日志数据中?
- tortoisesvn - TortoiseSVN 已修改文件的删除状态
- sql-server - 在选择查询 SQL Server 中选择行号
- android - MSAL acquireTokenSilent 挂起且永不返回
- php - 在 php 会话中管理用户组
- php - 如何在 laravel 中将文件写入桌面?
- android - 代码在模拟器中运行良好,但在真实设备中出错?