Mysql提供许多语句来管理用户账号,这些语句可以用来管理包括登录和退出Mysql服务器、创建用户、删除用户、密码管理和权限管理等内容
Mysql数据库的安全性,需要通过账户管理来保证
1.登录Mysql服务器
mysql使用用户名、密码、登录主机验证用户
登录Mysql服务器常用的命令参数:
-u—指定用户名
-p—指定密码
-S—指定socket文件位置
-P—指定要登录的端口号(适用于多实例)
-h—指定主机名或IP,如果不指定,默认是localhost
-e—执行sql语句。如果指定了该参数,将在登录后执行-e后面的命令或sql语句并退出
2.创建用户
(以下列举三个例子)`
create user 'demo'@'localhost' identified by '123';------标准
create user 'demo1' identified by '123'; 表示demo1用户通过密码123可以再任意主机登录
create user 'demo2'; 表示的demo2用户没有密码的从任意主机登录
以下是在创建用户语句中还可以增加的选项
选项:
1.password_option
password expire(立即过期) | password expire never | PASSWORD EXPIRE INTERVAL 180 DAY | password expire --360 day
2.lock_option
account lock | account unlock
3.auth_option(认证选项)
identified by 'auth_string'
4.ssl_option(加密连接选项)
5.resource_option(使用资源选项)
一个新用户创建出来后,它可以连接到数据库,并有权看到两个数据库:一个名为information_schema的系统数据库和一个test数据库。它对test数据库拥有全部权限,可以在里面创建表,进行DML操作等。对information_schema系统数据库中的表拥有查询权限,但是不能执行DML操作。如果还想进行其它操作,必须给他授权(授权在Mysql权限管理里讲解)
3.修改语句
1.修改用户名
RENAME USER old_user TO new_user [, old_user TO new_user] ... 修改用户名,可以一次修改多个
举例:
rename user 'jeffrey'@'localhost' to 'jeff'@'127.0.0.1';( 注意: 'jeff'@'127.0.0.1';是一个主体,修改时全部要包含)
2.修改密码
ALTER USER user_name IDENTIFIED BY 'auth_string‘;
set password='123';修改自己的密码
如果具有mysql数据库的update权限,就可以修改别人的密码
set password for ‘demo’@'localhost'='123';
错误示范
错误示范:将 ‘jeffrey’@‘localhost’删除,重新添加了‘Jeffrey’@’%’,但真正目的只是想修改用户名
4.mysql的登录方式
1.本地socket方式:mysql -uroot -p -S -P(也可以通过网络方式登录)
2.网络方式
127.0.0.1–识别成了localhost (用户名、密码、登录主机)
IP地址–远程 网络
常见问题:主机名使用localhost还是127.0.0.1?
使用localhost是通过socket来连接
使用127.0.0.1是通过tcp/ip来连接
本地用户:创建一个本地用户:create user user_name@‘localhost’
网络用户:创建一个网络用户:create user user_name@‘ip_address’
区别:
1.本地用户不需要IP 的解析、不需要网关、路由器等设备的支持
2.网络用户需要IP 的解析,需要网关、路由器等设备的支持(加-h选项)