mysql80-DBA数据库学习2

权限管理

创建用户

 create user user1@'localhost' identified by 'QianFeng@123';

select * from mysql.user;

或者select * from mysql.user\G进行分行显示

密码要求:

1组成: 由小写字母、大写字母、数字、字符 中的三项组成 ,也就是3/4

2长度:>=8位

登录mysql

mysql -uroot -p‘QianFeng@123’

show databases;

[root@localhost ly]# mysql -uuser1 -p'QianFeng@123'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 8.0.36 MySQL Community Server - GPLCopyright (c) 2000, 2024, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| performance_schema |
+--------------------+
2 rows in set (0.00 sec)mysql> 

使用root用户登录,能看到如下数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| company            |
| discuz             |
| haha               |
| information_schema |
| mysql              |
| performance_schema |
| school             |
| sys                |
+--------------------+
8 rows in set (0.00 sec)mysql> 

由于user1的用户没有权限,看不到company和school、haha等其他的数据库。

删除用户  drop user

mysql> drop user user1@'localhost';
Query OK, 0 rows affected (0.00 sec)

改用户密码

方法1:系统命令行下使用mysqladmin来改密码。 

mysqladmin -uuser1 -p'QianFeng@123' password 'QianFeng@123456'

[root@localhost ~]# mysqladmin -uuser1 -p'QianFeng@123' password 'QianFeng@123456'
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

有个警告,因为我们使用-p'QianFeng@123'  这里密码明文了

我们可以使用

mysqladmin -uuser1 -p password 'QianFeng@123456' 然后根据提示输入密码就不会有这个告警了

登录测试一下

[root@localhost ~]# mysql -uuser1 -p'QianFeng@123456'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 28
Server version: 8.0.36 MySQL Community Server - GPLCopyright (c) 2000, 2024, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> 

方法2:数据库命令行下

mysql>

 select user();查看当前登录用户

mysql> select user();
+-----------------+
| user()          |
+-----------------+
| user1@localhost |
+-----------------+
1 row in set (0.00 sec)mysql> 

mysql>  ALTER USER 'user1'@'localhost' IDENTIFIED BY 'QianFeng@456';

mysql>  ALTER USER 'user1'@'localhost' IDENTIFIED BY 'QianFeng@456';
Query OK, 0 rows affected (0.01 sec)

flush privileges;

方法3:mysql5.7 可以使用set password来修改密码。

忘记密码了怎么进行破解

1.vi /etc/my.cnf

添加行skip-grant-tables

表示跳过用户授权

2.systemctl restart mysqld  重启

此时系统不支持mysqladmin 来修改密码

3.mysql -uroot -p  不需要输入密码

此时使用alter user 来改密码也是不支持的

4.正确的方法update mysql.user set authentication_string='' wherer user='root'; 把root的密码认证清空

select user,authentication_string from mysql.user

此时密码为空,

5.vi /etc/my.cnf

注销#skip-grant-tables

6.mysqladmin -uroot -p passord 'QianFeng@12345'  改root密码成功。

登录mysql的其他参数

mysql -uroot -p‘QianFeng@456’ -P 3306 如果数据库的端口号改了,不再是默认的3306了就需要用-P来制定端口号,进行连接

mysql -uroot -p‘QianFeng@456’ company 制定连接后使用company数据库,默认登录后需要use +数据库才能跳入某个数据库内部来使用。现在可以在登录时制定使用过的数据库

select databases();查看使用的是哪个数据库。

使用该命令可以展示出mysql中存在的权限。

show privileges;

mysql> show privileges;
+------------------------------+---------------------------------------+-------------------------------------------------------+
| Privilege                    | Context                               | Comment                                               |
+------------------------------+---------------------------------------+-------------------------------------------------------+
| Alter                        | Tables                                | To alter the table                                    |
| Alter routine                | Functions,Procedures                  | To alter or drop stored functions/procedures          |
| Create                       | Databases,Tables,Indexes              | To create new databases and tables                    |
| Create routine               | Databases                             | To use CREATE FUNCTION/PROCEDURE                      |
| Create role                  | Server Admin                          | To create new roles                                   |
| Create temporary tables      | Databases                             | To use CREATE TEMPORARY TABLE                         |
| Create view                  | Tables                                | To create new views                                   |
| Create user                  | Server Admin                          | To create new users                                   |
| Delete                       | Tables                                | To delete existing rows                               |
| Drop                         | Databases,Tables                      | To drop databases, tables, and views                  |
| Drop role                    | Server Admin                          | To drop roles                                         |
| Event                        | Server Admin                          | To create, alter, drop and execute events             |
| Execute                      | Functions,Procedures                  | To execute stored routines                            |
| File                         | File access on server                 | To read and write files on the server                 |
| Grant option                 | Databases,Tables,Functions,Procedures | To give to other users those privileges you possess   |
| Index                        | Tables                                | To create or drop indexes                             |
| Insert                       | Tables                                | To insert data into tables                            |
| Lock tables                  | Databases                             | To use LOCK TABLES (together with SELECT privilege)   |
| Process                      | Server Admin                          | To view the plain text of currently executing queries |
| Proxy                        | Server Admin                          | To make proxy user possible                           |
| References                   | Databases,Tables                      | To have references on tables                          |
| Reload                       | Server Admin                          | To reload or refresh tables, logs and privileges      |
| Replication client           | Server Admin                          | To ask where the slave or master servers are          |
| Replication slave            | Server Admin                          | To read binary log events from the master             |
| Select                       | Tables                                | To retrieve rows from table                           |
| Show databases               | Server Admin                          | To see all databases with SHOW DATABASES              |
| Show view                    | Tables                                | To see views with SHOW CREATE VIEW                    |
| Shutdown                     | Server Admin                          | To shut down the server                               |
| Super                        | Server Admin                          | To use KILL thread, SET GLOBAL, CHANGE MASTER, etc.   |
| Trigger                      | Tables                                | To use triggers                                       |
| Create tablespace            | Server Admin                          | To create/alter/drop tablespaces                      |
| Update                       | Tables                                | To update existing rows                               |
| Usage                        | Server Admin                          | No privileges - allow connect only                    |
| XA_RECOVER_ADMIN             | Server Admin                          |                                                       |
| TELEMETRY_LOG_ADMIN          | Server Admin                          |                                                       |
| SYSTEM_VARIABLES_ADMIN       | Server Admin                          |                                                       |
| SHOW_ROUTINE                 | Server Admin                          |                                                       |
| SET_USER_ID                  | Server Admin                          |                                                       |
| SENSITIVE_VARIABLES_OBSERVER | Server Admin                          |                                                       |
| RESOURCE_GROUP_USER          | Server Admin                          |                                                       |
| AUTHENTICATION_POLICY_ADMIN  | Server Admin                          |                                                       |
| PASSWORDLESS_USER_ADMIN      | Server Admin                          |                                                       |
| SERVICE_CONNECTION_ADMIN     | Server Admin                          |                                                       |
| CLONE_ADMIN                  | Server Admin                          |                                                       |
| RESOURCE_GROUP_ADMIN         | Server Admin                          |                                                       |
| REPLICATION_SLAVE_ADMIN      | Server Admin                          |                                                       |
| GROUP_REPLICATION_ADMIN      | Server Admin                          |                                                       |
| BACKUP_ADMIN                 | Server Admin                          |                                                       |
| AUDIT_ABORT_EXEMPT           | Server Admin                          |                                                       |
| SESSION_VARIABLES_ADMIN      | Server Admin                          |                                                       |
| ROLE_ADMIN                   | Server Admin                          |                                                       |
| BINLOG_ENCRYPTION_ADMIN      | Server Admin                          |                                                       |
| APPLICATION_PASSWORD_ADMIN   | Server Admin                          |                                                       |
| BINLOG_ADMIN                 | Server Admin                          |                                                       |
| GROUP_REPLICATION_STREAM     | Server Admin                          |                                                       |
| AUDIT_ADMIN                  | Server Admin                          |                                                       |
| SYSTEM_USER                  | Server Admin                          |                                                       |
| FLUSH_STATUS                 | Server Admin                          |                                                       |
| ENCRYPTION_KEY_ADMIN         | Server Admin                          |                                                       |
| FIREWALL_EXEMPT              | Server Admin                          |                                                       |
| FLUSH_OPTIMIZER_COSTS        | Server Admin                          |                                                       |
| TABLE_ENCRYPTION_ADMIN       | Server Admin                          |                                                       |
| FLUSH_TABLES                 | Server Admin                          |                                                       |
| CONNECTION_ADMIN             | Server Admin                          |                                                       |
| INNODB_REDO_LOG_ENABLE       | Server Admin                          |                                                       |
| FLUSH_USER_RESOURCES         | Server Admin                          |                                                       |
| PERSIST_RO_VARIABLES_ADMIN   | Server Admin                          |                                                       |
| INNODB_REDO_LOG_ARCHIVE      | Server Admin                          |                                                       |
| REPLICATION_APPLIER          | Server Admin                          |                                                       |
+------------------------------+---------------------------------------+-------------------------------------------------------+
69 rows in set (0.00 sec)mysql> 

给用户授权的方式有 2 种,分别是通过把角色赋予用户给用户授权(mysql8.0的特性) 和 直接给用户授权。用户是数据库的使用者,我们可以通过给用户授予访问数据库中资源的权限,来控制用户对数据库的访问,消除安全隐患。
授权命令:该权限如果发现没有该用户,则会直接新建一个用户。

方式1.把角色赋予用户给用户授权(mysql8.0的特性)

方式2:直接给用户授权

GRANT 权限1,权限2,…权限n ON 数据库名称.表名称 TO 用户名@用户地址 [IDENTIFIED BY ‘密码口令’];

举例:
1、给li4用户用本地命令行方式,授予shool这个库下的所有表的插删改查的权限。

GRANT SELECT,INSERT,DELETE,UPDATE ON school.* TO li4@localhost ;

school是数据库名

2、授予通过网络方式登录的user1用户 ,对所有库所有表的全部权限,密码设为123。如果需要赋予包括grant权限,添加参数“WITH GRANT OPTION”这个选项即可,表示该用户可以将自己拥有的权限授权给其他用户,可以使用grant重复给用户添加权限。

GRANT ALL PRIVILEGES ON *.* TO user2@'%' IDENTIFIED BY '123' with grant option;

user1@'%'        '%'是允许网络方式登录     ‘localhost’是只允许本地登录

报错:

mysql> GRANT ALL PRIVILEGES ON *.* TO user2@'%' IDENTIFIED BY '123' with grant option;
ERROR 1064 (42000): 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 '123' with grant option' at line 1
mysql> 

42000的错误就是命令的语法错误

主要原因是MySQL版本8.0后不能再使用原来的方式,不能再授权的时候创建用户和配置密码

查询MySQL版本

SELECT version();

1.再用MySQL 8试一下
create user test1@'localhost' identified by 'QianF@123456';
create database testdb;
grant all privileges on testdb.* to test1@'localhost';
flush privileges;

2.再用MySQL 5.7试一下mysql> grant all privileges on test.* to test@'%' identified by '123456';    
Query OK, 0 rows affected, 1 warning (0.08 sec)
mysql> flush privileges;

那么在MySQL8.0版本及以后,先创建用户,再赋予授权。

#mysql8==>不允许<==授权并创建用户了,要分开使用

创建远程访问新用户并授权
use mysql;
# mysql8 以前:
grant all privileges on *.* to '新用户名'@'%' identified by '密码' with grant option;
grant all privileges on *.* to '新用户名'@'指定ip' identified by '密码' with grant option;
例如:以前使用
grant all privileges on *.* to 'root'@'%' identified by "123456" with grant option;#mysql8==>不允许<==授权并创建用户了,要分开使用
mysql8分开操作为:
CREATE USER 'root'@'%'; #创建角色CREATE USER 'root'@'%' IDENTIFIED BY '123456';
ALTER USER 'root'@'%' IDENTIFIED with mysql_native_password by '123456'; #修改密码
grant all privileges on *.* to "root"@"%"; #给角色授权
flush privileges; #刷新权限#另外修改主机
update mysql.user set host='具体要指定的主机ip' where user='root';#重命名
RENAME USER 'jeffrey'@'localhost' TO 'jeff'@'127.0.0.1'; flush privileges; #刷新权限
select user,host,authentication_string from user;

授予数据库权限时,<权限类型>可以指定为以下值:

SELECT:表示授予用户可以使用 SELECT 语句访问特定数据库中所有表和视图的权限。
INSERT:表示授予用户可以使用 INSERT 语句向特定数据库中所有表添加数据行的权限。
DELETE:表示授予用户可以使用 DELETE 语句删除特定数据库中所有表的数据行的权限。
UPDATE:表示授予用户可以使用 UPDATE 语句更新特定数据库中所有数据表的值的权限。
REFERENCES:表示授予用户可以创建指向特定的数据库中的表外键的权限。
CREATE:表示授权用户可以使用 CREATE TABLE 语句在特定数据库中创建新表的权限。
ALTER:表示授予用户可以使用 ALTER TABLE 语句修改特定数据库中所有数据表的权限。
SHOW VIEW:表示授予用户可以查看特定数据库中已有视图的视图定义的权限。
CREATE ROUTINE:表示授予用户可以为特定的数据库创建存储过程和存储函数的权限。
ALTER ROUTINE:表示授予用户可以更新和删除数据库中已有的存储过程和存储函数的权限。
INDEX:表示授予用户可以在特定数据库中的所有数据表上定义和删除索引的权限。
DROP:表示授予用户可以删除特定数据库中所有表和视图的权限。
CREATE TEMPORARY TABLES:表示授予用户可以在特定数据库中创建临时表的权限。
CREATE VIEW:表示授予用户可以在特定数据库中创建新的视图的权限。
EXECUTE ROUTINE:表示授予用户可以调用特定数据库的存储过程和存储函数的权限。
LOCK TABLES:表示授予用户可以锁定特定数据库的已有数据表的权限。
ALL 或 ALL PRIVILEGES:表示以上所有权限。

授予权限时,<权限类型>可以指定为以下值:

SELECT:授予用户可以使用 SELECT 语句进行访问特定表的权限。
INSERT:授予用户可以使用 INSERT 语句向一个特定表中添加数据行的权限。
DELETE:授予用户可以使用 DELETE 语句从一个特定表中删除数据行的权限。
DROP:授予用户可以删除数据表的权限。
UPDATE:授予用户可以使用 UPDATE 语句更新特定数据表的权限。
ALTER:授予用户可以使用 ALTER TABLE 语句修改数据表的权限。
REFERENCES:授予用户可以创建一个外键来参照特定数据表的权限。
CREATE:授予用户可以使用特定的名字创建一个数据表的权限。
INDEX:授予用户可以在表上定义索引的权限。
ALL 或 ALL PRIVILEGES:所有的权限名。

授予权限时,<权限类型>的值

只能指定为 SELECT、INSERT 和 UPDATE,同时权限后面需要加上列名列表 column-list

最有效率的权限是用户权限。授予用户权限时,

<权限类型>除了可以指定为授予数据库权限时的所有值之外,还可以是下面这些值:

  • CREATE USER:表示授予用户可以创建和删除新用户的权限。
  • SHOW DATABASES:表示授予用户可以使用 SHOW DATABASES 语句查看所有已有的数据库的定义的权限。

WITH GRANT OPTION的作用

数据库添加用户语句:

WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。注意:经常有人在创建操作用户的时候不指定WITH GRANT OPTION选项导致后来该用户不能使用GRANT命令创建用户或者给其它用户授权。

再次说明mysql的用户授权信息存放在mysql的user表中。

分配表权限

grant all on school.t1 to admint1@'localhost';

[root@bogon ~]# mysql -uadmint1 -p'QianF@123456'mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| performance_schema |
| school             |
+--------------------+
3 rows in set (0.00 sec)mysql> use school
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> show tables-> ;
+------------------+
| Tables_in_school |
+------------------+
| t1               |
+------------------+
1 row in set (0.01 sec)mysql> select * from school.t1;
+------+--------+
| id   | name   |
+------+--------+
|    1 | liming |
+------+--------+
1 row in set (0.00 sec)mysql> 

列权限分配

[root@bogon ~]# mysql -uroot -p'Root@098'       mysql> create user adminl1@'localhost' identified by 'QianF@123456';
Query OK, 0 rows affected (0.02 sec)mysql> grant select(id),insert(name) on school.t1 to adminl1@'localhost';
Query OK, 0 rows affected (0.01 sec)mysql> [root@bogon ~]# mysql -uadminl1 -p'QianF@123456' mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| performance_schema |
| school             |
+--------------------+
3 rows in set (0.00 sec)mysql> use school
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> show tables;
+------------------+
| Tables_in_school |
+------------------+
| t1               |
+------------------+
1 row in set (0.00 sec)mysql> select * from school.t1-> ;
ERROR 1142 (42000): SELECT command denied to user 'adminl1'@'localhost' for table 't1'
mysql> select id from school.t1 -> ;
+------+
| id   |
+------+
|    1 |
+------+
1 row in set (0.00 sec)
mysql> select name from school.t1; 
ERROR 1143 (42000): SELECT command denied to user 'adminl1'@'localhost' for column 'name' in table 't1'mysql> insert into school.t1(name) values ('wang4');    
Query OK, 1 row affected (0.00 sec)
mysql> insert into school.t1 values (2,'wang4');
ERROR 1142 (42000): INSERT command denied to user 'adminl1'@'localhost' for table 't1'

with grant  option 包含授权选项

[root@bogon ~]# mysql -uroot -p'Root@098'       mysql> create user adminall@'localhost' identified by 'QianF@123456';
Query OK, 0 rows affected (0.02 sec)mysql> grant all on *.* to adminall@'localhost' with grant option;
Query OK, 0 rows affected (0.01 sec)mysql> \q
Bye
[root@bogon ~]# mysql -uadminall -p'QianF@123456'mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| company            |
| discuz             |
| haha               |
| information_schema |
| mysql              |
| performance_schema |
| school             |
| sys                |
| testdb             |
+--------------------+
9 rows in set (0.01 sec)mysql> grant select,insert on school.t1 to adminl1@'localhost';
Query OK, 0 rows affected (0.00 sec)mysql> \q
Bye
[root@bogon ~]# mysql -uadminl1 -p'QianF@123456' mysql> use school
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> select * from t1;
+------+--------+
| id   | name   |
+------+--------+
|    1 | liming |
| NULL | wang4  |
+------+--------+
2 rows in set (0.00 sec)mysql> 

远程登录

mysql -u用户名 -p‘密码’ -h IP地址

例如 mysql -uadmint1 -p‘QianF@123456’ -h 10.23.0.209

mysql> create user test@'102.168.0.%' identified by 'QianF@123456';
Query OK, 0 rows affected (0.01 sec)mysql> select user,host from user;
ERROR 1046 (3D000): No database selected
mysql> select user,host from mysql.user;
+------------------+-------------+
| user             | host        |
+------------------+-------------+
| ly               | %           |
| test             | 102.168.0.% |
| adminall         | localhost   |
| adminl1          | localhost   |
| admint1          | localhost   |
| mysql.infoschema | localhost   |
| mysql.session    | localhost   |
| mysql.sys        | localhost   |
| root             | localhost   |
| test             | localhost   |
| test1            | localhost   |
| user1            | localhost   |
+------------------+-------------+
12 rows in set (0.01 sec)

user              host
| test             | 102.168.0.% |
| test             | localhost   |

我们不难发现用户名test有两个 但是他们对应的host是不同的
 

权限查看

show grants\G

mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)mysql> show grants\G
*************************** 1. row ***************************
Grants for root@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 `root`@`localhost` WITH GRANT OPTION
*************************** 2. row ***************************
Grants for root@localhost: GRANT APPLICATION_PASSWORD_ADMIN,AUDIT_ABORT_EXEMPT,AUDIT_ADMIN,AUTHENTICATION_POLICY_ADMIN,BACKUP_ADMIN,BINLOG_ADMIN,BINLOG_ENCRYPTION_ADMIN,CLONE_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,FIREWALL_EXEMPT,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,SENSITIVE_VARIABLES_OBSERVER,SERVICE_CONNECTION_ADMIN,SESSION_VARIABLES_ADMIN,SET_USER_ID,SHOW_ROUTINE,SYSTEM_USER,SYSTEM_VARIABLES_ADMIN,TABLE_ENCRYPTION_ADMIN,TELEMETRY_LOG_ADMIN,XA_RECOVER_ADMIN ON *.* TO `root`@`localhost` WITH GRANT OPTION
*************************** 3. row ***************************
Grants for root@localhost: GRANT PROXY ON ``@`` TO `root`@`localhost` WITH GRANT OPTION
3 rows in set (0.00 sec)

show grants for 用户名

mysql> show grants for test@'localhost';
+---------------------------------------------------------+
| Grants for test@localhost                               |
+---------------------------------------------------------+
| GRANT USAGE ON *.* TO `test`@`localhost`                |
| GRANT ALL PRIVILEGES ON `test`.* TO `test`@`localhost`  |
| GRANT ALL PRIVILEGES ON `test1`.* TO `test`@`localhost` |
+---------------------------------------------------------+
3 rows in set (0.00 sec)mysql> 

revoke 权限回收

revoke 权限 on 数据库.表 from 用户@地址

mysql> show grants for test@'localhost';
+---------------------------------------------------------+
| Grants for test@localhost                               |
+---------------------------------------------------------+
| GRANT USAGE ON *.* TO `test`@`localhost`                |
| GRANT ALL PRIVILEGES ON `test`.* TO `test`@`localhost`  |
| GRANT ALL PRIVILEGES ON `test1`.* TO `test`@`localhost` |
+---------------------------------------------------------+
3 rows in set (0.00 sec)mysql> revoke all on school.* from test@'localhost';
ERROR 1141 (42000): There is no such grant defined for user 'test' on host 'localhost'mysql> revoke all on test.* from test@'localhost'; 
Query OK, 0 rows affected (0.01 sec)mysql> 
mysql> show grants for test@'localhost';            
+---------------------------------------------------------+
| Grants for test@localhost                               |
+---------------------------------------------------------+
| GRANT USAGE ON *.* TO `test`@`localhost`                |
| GRANT ALL PRIVILEGES ON `test1`.* TO `test`@`localhost` |
+---------------------------------------------------------+
2 rows in set (0.00 sec)mysql> 

删除用户

drop user 用户名

mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)mysql> select user,host from mysql.user;
+------------------+-------------+
| user             | host        |
+------------------+-------------+
| ly               | %           |
| test             | 102.168.0.% |
| adminall         | localhost   |
| adminl1          | localhost   |
| admint1          | localhost   |
| mysql.infoschema | localhost   |
| mysql.session    | localhost   |
| mysql.sys        | localhost   |
| root             | localhost   |
| test             | localhost   |
| test1            | localhost   |
| user1            | localhost   |
+------------------+-------------+
12 rows in set (0.00 sec)mysql> drop user user1;
ERROR 1396 (HY000): Operation DROP USER failed for 'user1'@'%'
mysql> drop user user1@'localhost';
Query OK, 0 rows affected (0.00 sec)mysql> 

注意在5.7和8.0之前的版本,删除用户前必须先用revoke把权限都回收完才能删除用户。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/772834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单片机---独立按键

[3-1] 独立按键控制LED亮灭_哔哩哔哩_bilibili 按下的时候连接&#xff0c;松开的时候断开。 一头接GND&#xff08;电源负极&#xff09;&#xff0c;另一头接I/O口。 单片机上电时&#xff0c;所有I/O口为高电平。 按键没有按下&#xff0c;I/O口为高电平。 按键按下&…

标题:深入了解 ES6 模块化技术

在 ES6 版本之前&#xff0c;JavaScript 一直缺乏一个内置的模块系统&#xff0c;这给大型项目的开发带来了一些挑战。ES6 引入了模块化的概念&#xff0c;为 JavaScript 开发者提供了一种更好的组织和管理代码的方式。 模块是 JavaScript 的一种代码组织方式&#xff0c;它将代…

界面控件DevExpress WinForms/WPF v23.2 - 电子表格支持表单控件

DevExpress WinForm拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜任…

QGraphicsView(平移/缩放/旋转)

简述 Graphics View提供了一个平台&#xff0c;用于大量自定义 2D 图元的管理与交互&#xff0c;框架包括一个事件传播架构&#xff0c;支持场景 Scene 中的图元 Item 进行精确的双精度交互功能。Item 可以处理键盘事件、鼠标按下、移动、释放和双击事件&#xff0c;同时也能跟…

鸿蒙OS封装【axios 网络请求】(类似Android的Okhttp3)

Okhttp.ets /*** 网络请求*/ import axios from ohos/axios import httpConstants from ../net/HttpConstants import errorCode from ../utils/errorCode import toast from ../utils/ToastUtils import router from ../utils/RouterUtils import SPUtils from ../utils/SPUt…

毕马威:量子计算成未来3-5年重大挑战

毕马威&#xff08;KPMG&#xff09;是一家全球性的专业服务网络&#xff0c;其历史可追溯到19世纪末。作为“四大”会计师事务所之一&#xff0c;毕马威在审计、税务和咨询服务领域享有盛誉。公司在全球范围内拥有多个办事处&#xff0c;服务遍及各个行业&#xff0c;包括金融…

5.1 物联网RK3399项目开发实录-Android开发之ADB使用(wulianjishu666)

物联网项目开发实例&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/11VQMhHfIL9mZhNlls4wmjw?pwd0gfa 1. ADB 使用 1.1. 前言 ADB&#xff0c;全称 Android Debug Bridge&#xff0c;是 Android 的命令行调试工具&#xff0c;可以完成多种功能&#xff0c;如跟踪系…

CentOS Stream 8系统配置阿里云YUM源

Linux运维工具-ywtool 目录 一.系统环境二.修改yum文件2.1 CentOS-Stream-AppStream.repo2.2 CentOS-Stream-BaseOS.repo2.3 CentOS-Stream-Extras.repo 三.只有一个配置文件四.其他知识4.1 如果想要启用其他源,修改文件配置:enabled14.2 国内源链接 一.系统环境 CentOS Strea…

Linux一键式安装JDK、Mysql、Redis、Nginx(附带安装包,无需手动配置密码等)

安装包 新服务器安装前置准备 1. 设置系统时区 # 查看服务器时区 timedatectl # 设置服务器时区为上海 timedatectl set-timezone Asia/Shanghai # 设置系统时间为“2021-3-19 11:00:00” date -s "2021-3-19 11:00:00" # 查看校准后的系统时间 date …

[C++]内联函数(内联函数的概念,内联函数的特性,内联函数与宏的区别)

一、内联函数的概念 以inline修饰的的函数叫内联函数&#xff0c;编译时C编译器会在调用内联函数的位置将内联函数展开&#xff0c;内联函数没有调用函数参数压栈的开销&#xff0c;内联函数可以提高程序的运行效率。 例子&#xff1a; 没有使用内联函数 使用内联函数&#xff…

【SpringBoot整合系列】SpringBoot3.x整合Swagger

目录 产生背景官方解释&#xff1a;作用SpringBoot3整合Swagger注意事项swagger3 常用注解SpringBoot3.x整合Swagger1.创建工程(jdk:17,boot:3.2.4)2.引入pom依赖3.application.yml添加配置4.添加swagger3.0配置5.控制器层(Controller)6.模型层(Model)7.启动并测试【Get请求接口…

一、Spring Cloud(Base工程构建)

一、Spring Cloud&#xff08;Base工程构建&#xff09; 1.1 Spring Cloud 简述 1.1.1 Spring Cloud 版本推荐 在讲解 Spring Cloud 之前&#xff0c;首先推荐一下各个依赖的版本&#xff0c;以免出现版本错误 版本推荐 必须根据以上版本&#xff0c;否则可能会出现一些不…

Hana数据库 No columns were bound prior to calling SQLFetch or SQLFetchScroll

在php调用hana数据库的一个sql时报错了&#xff0c;查表结构的sql&#xff1a; select * from sys.table_columns where table_name VBAP SQLSTATE[SL009]: <<Unknown error>>: 0 [unixODBC][Driver Manager]No columns were bound prior to calling SQLFetch …

基于SpringBoot和Leaflet的行政区划地图掩膜效果实战

目录 前言 一、掩膜小知识 1、GIS掩膜的实现原理 2、图层掩膜流程 二、使用插件 1、leaflet-mask介绍 2、核心代码解释 三、完整实例实现 1、后台逻辑实现 2、省级行政区划查询实现 3、行政区划定位及掩膜实现 4、成果展示 总结 前言 在之前的博客提过按空间矢量…

【STM32+HAL】I2C+DMA读取AS5600编码器

一、DMA的应用 有关更多DMA的应用&#xff0c;详见【STM32HAL】DMA应用 二、HAL库配置 1、开启I2C 开启对应DMA及中断 2、开启串口通信 至此&#xff0c;HAL库配置完毕 三、DMA版&#xff08;高效但不稳定&#xff09; 1、as5600.c #include "AS5600.h" #includ…

数据结构与算法 顺序表的基本运算

一、实验内容 编写一个程序实现&#xff0c;实现顺序表的各种基本运算&#xff08;假设顺序表的元素类型为char&#xff09;&#xff0c;并以此为基础设计一个程序完成下列功能&#xff1a; &#xff08;1&#xff09;初始化顺序表&#xff1b; &#xff08;2&#xff09;采…

用指针处理链表(二)

4建立动态链表 所谓建立动态链表是指在程序执行过程中从无到有地建立起一个链表&#xff0c;即一个一个地开辟结点和输入各结点数据,并建立起前后相链的关系。 例11.8 写一函数建立一个有3名学生数据的单向动态链表。 先考虑实现此要求的算法(见图11.12)。 设3个指针变量:he…

企业级快速开发框架 nbsaas-boot 1.1.8-2024 发布了

<parent><groupId>com.nbsaas.boot</groupId><artifactId>nbsaas-boot</artifactId><version>1.1.8-2024</version> </parent> 本次更新内容 1. 重构代码生成器&#xff0c;采用类提取和字段提取两种方式&#xff0c;提取功能…

HDFSRPC通信框架详解

本文主要对HDFSRPC通信框架解析。包括listener&#xff0c;reader&#xff0c;handler&#xff0c;responser等实现类的源码分析。注意hadoop版本为3.1.1。 写在前面 rpc肯定依赖于socket通信&#xff0c;并且使用的是java NIO。读者最好对nio有一定的了解&#xff0c;文章中…

古河云科技校园数字孪生解决方案

智慧校园需将环境信息、资源信息和应用信息全部转化为数字化信息&#xff0c;为管理决策和服务提供强有力的支持。智慧系统集智能化感知、智能化控制、智能化管理、智能化互动反馈、智能化数据分析、智能化视窗等功能于一体&#xff0c;旨在实现校园信息服务的全面提升。 行业…