用户
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 '用户名'@'登陆位置';