实际开发中,公司出于安全考虑,不会给我们 root 账号、密码,只有关于本项目的 数据库账号、密码 或者 专门用途的账号、密码
1. 查询当前数据库用户
使用 root 账号、密码登录 mysql
输入:
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
只有 root 一个用户
2. 创建用户:
sql:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
username:用户名
host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
password:登录密码
etc:create user 'kevin'@'%' identified by 'Kevin123!';
3. 授权:
sql:GRANT privileges ON databasename.tablename TO 'username'@'host'
privileges:用户的操作权限,如SELECT
,INSERT
,UPDATE
等,如果要授予所的权限则使用ALL
databasename:数据库名
tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*
表示,如*.*
etc:GRANT ALL ON test01.* TO 'kevin' WITH GRANT OPTION;
查询 kevin 的权限:
select * from mysql.user where user='kevin';
垂直展示:
select * from mysql.user where user='kevin' G;
给 kevin02 授予所有 数据库所有表的所有权限:
对比看出,拥有了所有数据库所有表的所有权限后,权限 为 Y
4. 结果测试:
kevin 只能操作 test01
kevin02 可以看到并操作所有数据库
参考:
MySQL创建用户与授权:https://www.jianshu.com/p/d7b9c468f20d