MySQL之用户管理(数据库授权,权限回收,修改用户密码)

用户

1.用户信息
MySQL中的用户都存储在系统数据库mysql的user表

mysql> use mysql;
Database changed
mysql> select host,user,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host      | user          | authentication_string                     |
+-----------+---------------+-------------------------------------------+
| localhost | root          | *9B09A5B43380B18B737EDE4E457F22A8E95AB82B |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+---------------+-------------------------------------------+

注:

  • host:表示这个用户可以从哪个主机登录,如果是localhost,表示只能从本机登录
  • user:用户名
  • authentication_string:用户密码通过password函数加密后的

2.创建用户
语法:create user '用户名'@‘登录主机/ip’ identified by '密码';

案例:

mysql> create user 'testSQL'@'localhost' identified by '123456';


mysql> select host,user,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host      | user          | authentication_string                     |
+-----------+---------------+-------------------------------------------+
| localhost | root          | *9B09A5B43380B18B737EDE4E457F22A8E95AB82B |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | testSQL       | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+---------------+-------------------------------------------+

创建用户没有给该用户设置权限,此时只能查看一个数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+

3.修改用户密码
语法:

  • 自己改自己的密码
set password=password('新的密码');
  • root用户修改指定用户的密码
set password for '用户名'@'主机名'=password('新的密码');

4.删除用户
语法:drop user '用户名'@'主机名';

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

数据库的权限

1.给用户授权
语法:grant 权限列表 on 库.对象名 to '用户名'@'登陆位置' [identified by '密码']
注:

  • 权限列表,多个权限用逗号分隔
grant select on.....
grant select,delete,create on....
grant all on....--all表示给该用户所有权限
  • *.*代表本系统中的所有数据库的所有对象(表、视图、存储过程等)
  • 库.*表示某个数据库中的所有数据对象(表、视图、存储过程等)
  • 如果发现赋值权限后,没有生效,执行如下命令flush privileges;

2.回收权限
语法:revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章