用户介绍
2018-09-18 09:53 更新
- 系统默认数据库介绍
- 查看系统当前存在的用户
通过1中,我们知道数据库的用户信息存在mysql数据库中的user表中,我们查询该表,结果如下。Host字段是当前用户可登录的ip地址(如果是*则代表可任意地址登录),User字段是用户名称,Password是用户密码。
mysql> select Host, User, Password from user;
+-----------+------+-------------------------------------------+
| Host | User | Password |
+-----------+------+-------------------------------------------+
| localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| 127.0.0.1 | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| ::1 | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+------+-------------------------------------------+
3 rows in set (0.00 sec)
- 自定义用户
为什么需要自定义用户呢?我们会从如下几个方面考虑,权限、职能。
默认的root用户属于mysql中的超级管理员的职能,如果每个人都能拿到该root的权限,容易发生一些操作错误,轻者数据库部分数据出现问题,重则整个数据库遭到毁灭。
默认的root用户属于mysql中的超级管理员的职能,容易遭到怀有恶意企图的人所利用。
默认的root用户属于mysql中的超级管理员的职能,给定指定用户相应的权限,可以保证每个用户只能使用该用户职责内的权限,既可以保证数据库的分工更加精细化,同时也保证了数据库的安全。
// 创建mysql用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
// 给该用户授予相应的权限(privileges_name为all时,则表示授予所有权限,下面收回权限处的含义一致)
GRANT privileges_name privileges ON databasename.tablename TO 'username'@'host';
// 刷新权限,使新创建的用户能够使用
flush privileges;
// 收回用户权限
REVOKE privileges_name privilege ON databasename.tablename FROM 'username'@'host';
如果我们创建了相同的用户名,需要删除第一次创建时的用户名,不能只删除mysql库下的user表信息,应该使用drop user username命令进行删除用户操作。然后使用flushprivileges进行权限刷新。如果按照上述操作,提示用户无法登录,查看防火墙状态,可参考 参考链接
- 删除用户
// 删除用户
drop USER 'username'@'host';
// 重新加载权限
flush privilege
- 修改用户密码
//设置指定用户的密码
set password for'username'@'host' = password('newpassword');
// 设置当前登录用户的密码
set password = password('newpassword');
以上内容是否对您有帮助:
更多建议: