权限级别
Global level: 系统级,所有库,所有表,的权限
Database level:某个数据库中的所有表,的权限
able level:库中的某个表,的权限
Column level:表中的某个字段,的权限
procs level:某个存储过程,的权限
proxies level:代理服务器,的权限
查看权限记录表:因为超级管理员默认已经设置。所以直接查询权限即可。
select * from mysql.user\G;
用户字段:root
权限字段:Select_priv
安全字段:*B1DD4ADE47888D9AEC4D705C85230F1B52D2A817
用户管理
1. 登录和退出MySQL
#mysql -h 192.168.5.240 -P 3306 -u root -p 123 mysql -e ‘select user,host from user’
-h
指定主机名 【默认为localhost】
-P
MySQL服务器端口 【默认3306】
-u
指定用户名 【默认root】
-p
指定登录密码 【默认为空密码】
此处mysql为指定登录的数据库
-e
接SQL语句 (在脚本中使用)
注: mysql -e
可以在终端操作数据库
创建用户
CREATE USER
语句创建
mysql> create user用户名;
mysql> create user 用户名@’%’ identified by '密码'; 这样可以直接从远程登录
GRANT
语句创建(授权)
mysql> GRANT ALL ON *.* TO '用户名'@’localhost’ IDENTIFIED BY ‘密码’;
mysql> grant select,insert on k1.* to 用户@'%' identified by '密码';
FLUSH PRIVILEGES;
查看单独的库权限
mysql> select * from mysql.db\G
注意:
ALL 单独的权限
*.*
单独的库和单独的表
用户名@localhost 用户有则授权无则创建
删除用户
DROP USER
语句删除
DROP USER 'user1'@’localhost’;
DELETE
语句删除
DELETE FROM mysql.user WHERE user='user2' AND host=’localhost’;
FLUSH PRIVILEGES; 刷新授权表
修改密码
# mysqladmin -uroot -p'123' password 'new_password' //123为旧密码
mysql> update mysql.user set authentication_string=password('123!') where user='root' and host='localhost';
给哪个用户设置密码,你要在哪个用户下执行
SET PASSWORD=password(‘new_password’);
上面方法将会在后面的版本remove,使用下面方法
SET PASSWORD='new_password'; 直接设置密码