mysql(二)-用户管理与权限

用户相关是存放在mysql.user表中,可以使用desc查看表结构

MySQL大小写详情:

1、数据库名严格区分大小写
2、表名严格区分大小写的
3、表的别名严格区分大小写
4、变量名严格区分大小写
5、列名在所有的情况下均忽略大小写
6、列的别名在所有的情况下均忽略大小写

用户管理

用户格式

用户名@可登录主机
user@host

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 common_user@'%'';               授权指定用户对指定数据查询权限
grant select on testdb.* to user1@'localhost',user2@'localhost';               授权多个用户对指定数据查询权限
grant create,delete,insert,update on testdb.* to developer@'192.168.0.%';        授权指定用户对指定数据创建,删除,增加,更新权限
grant select (name,age) on dbname.tables to hunk@'localhost';                      授权指定用户对指定表中的某些字段查询权限
grant ALL on testdb.* to developer@'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 dba@localhost                               查看其他用户权限

设置用户权限
grant select on legacy.* to mary@'localhost' identified by ‘mary_password’;
grant select,insert,update,delete on legacy.* to legacy@'localhost' identified by ‘legacy_password’;
grant select on legacy.* to report@'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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章