用户相关是存放在mysql.user表中,可以使用desc查看表结构
MySQL大小写详情:
1、数据库名严格区分大小写
2、表名严格区分大小写的
3、表的别名严格区分大小写
4、变量名严格区分大小写
5、列名在所有的情况下均忽略大小写
6、列的别名在所有的情况下均忽略大小写
用户管理
用户格式
用户名@可登录主机
[email protected]
host:host可以为主机名,也可以为IP地址,mysql里主机名和IP地址属于不同的主机;
host可以使用通配符
通配符 | 代表含义 |
---|---|
_ | 任意单个字符 |
% | 任意长度的任意字符 |
例子 | 代表 |
---|---|
% | 所有主机 |
192.168.%.% | 所有以192.168.开头的主机 |
创建用户
格式:
方法一:此种方法不会授于用户权限
create user ‘用户名‘@‘可登录主机‘ identified by ‘密码‘
CREATE USER ‘hunk‘@‘localhost‘ IDENTIFIED BY ‘123456‘;
方法二:
grant 权限 on 数据库.* to ‘用户名‘@‘可登录主机‘ identified by ‘密码‘;
grant all on *.* to ‘hunk2‘@‘%‘ identified by ‘123456‘;
授权格式:
grant 权限 on 数据库对象 to 用户
grant 权限 on 数据库.* to 用户名@登录主机 identified by ‘密码‘;
grant select on testdb.* to [email protected]‘%‘‘; 授权指定用户对指定数据查询权限
grant select on testdb.* to [email protected]‘localhost‘,[email protected]‘localhost‘; 授权多个用户对指定数据查询权限
grant create,delete,insert,update on testdb.* to [email protected]‘192.168.0.%‘; 授权指定用户对指定数据创建,删除,增加,更新权限
grant select (name,age) on dbname.tables to [email protected]‘localhost‘; 授权指定用户对指定表中的某些字段查询权限
grant ALL on testdb.* to [email protected]‘192.168.0.%‘ whit grant option; 授权指定用户对指定数据创建,删除,增加,更新权限,并且授权用户可以为其他用户授权(谨慎)
grant usage on *.* to ‘hunk‘@‘192.168.0.1‘ require ssl; 强制用户使用ssl连接
grant usage on *.* to ‘hunk‘@‘192.168.0.1‘ require none; 强制用户使用ssl连接
EVOKE ALL ON *.* FROM ‘username‘@‘localhost‘; 回收指定用户全部权限
EVOKE update ON *.* FROM ‘username‘@‘localhost‘; 回收指定用户update权限
Show grants; 查看当前用户(自己)权限
show grants for [email protected] 查看其他用户权限
设置用户权限
grant select on legacy.* to [email protected]‘localhost‘ identified by ‘mary_password’;
grant select,insert,update,delete on legacy.* to [email protected]‘localhost‘ identified by ‘legacy_password’;
grant select on legacy.* to [email protected]‘localhost" identified by ‘report_password’;
MySQL grant 权限,分别可以作用在多个层次上。
1. grant 作用在整个 MySQL 服务器
2. grant 作用在单个数据库
3. grant 作用在单个数据表
4. grant 作用在表中的列
5. grant 作用在存储过程、函数
权限列表: 权限 |
权限说明 |
---|---|
ALTER | 修改表和索引 |
CREATE | 删除表中已有的记录 |
DELETE | 创建数据库和表 |
DROP | 抛弃(删除)数据库和表 |
INDEX | 创建或抛弃索引 |
INSERT | 向表中插入新行 |
SELECT | 查询表中的记录 |
UPDATE | 修改现存表记录 |
EXECUTE | 执行权 |
FILE | 读或写服务器上的文件 |
PROCESS | 查看服务器中执行的线程信息或杀死线程 |
RELOAD | 重载授权表或清空日志、主机缓存或表缓存 |
SHUTDOWN | 关闭服务器 |
ALL | 所有权限 |
USAGE | 当一个用户被创建时,mysql会自动授予其usage权限。usage权限只能用于登录数据,不能执行其他操作 |
重命名用户
rename user 旧用户名 to 新用户名
修改用户密码
方法一:
/bin/mysqladmin -u root -p123456 password ‘新密码‘
方法二:
登录到mysql
set password for hunk2=password("hunk");
flush privileges;
方法三:
登录到mysql
update mysql.user set password=password("1234567") where user=‘hunk‘;
flush privileges;
必须要刷新表权限。
在mysql5.7中,mysql.user表的password字段已经被更改为authentication_string字段
查询当前mysql进程列表,可以查看登录用户
show processlist;
原文地址:http://blog.51cto.com/191226139/2092001
时间: 2024-10-09 22:01:11