主要总结MySQL进行用户管理的基本实现,包含MySQL登录,添加用户,删除用户,为用户分配权限,移除某用户的权限,修改密码,查看权限等基本操作,所有命令均亲测实现。本博文是本人的劳动成果所得,在博客园总结分享,欢迎转载。在没有作者的书面说明的情况下,必须保留本段声明。作者:itRed 邮箱: 博客链接: GitHub链接:
一、登录MySQL
命令格式:mysql –u(用户名) –p(密码)
mysql>mysql –uroot –p123456
二、创建用户
一般用的是insert方式进行添加用户,并且在添加时就指定了登录密码,但是就我而言,采用insert方式会报以下的错误,虽然仍可以实现,但是需要修改某个配置文件。反而显得比较麻烦!因此采用create命令会显得相当简便,实用!
如果采用这个命令:mysql> insert into user(host,user,password) values("localhost","red",password("123456"));则会在执行过程中报错如下:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value。。。
采用这个create则可以实现,命令格式:create user (用户名);
mysql>create user red 该命令为red用户创建登录密码
为red用户设置登录时所需要的密码,命令格式:
update mysql.`user` u SET u.`Password` = PASSWORD(登录密码) WHERE u.`User`=(用户名) ;
FLUSH PRIVILEGES; //使改动生效;必须要加上的
mysql>UPDATE mysql.`user` u SET u.`Password` = PASSWORD("123456") WHERE u.`User`='red' ;
mysql> FLUSH PRIVILEGES;
三、权限分配
基本常用权限操作包含:select,delete,update,create,drop等。
授权所有权限给指定用户:
命令格式:grant all privileges on 数据库.* to 用户名@localhost identified by用户密码;
mysql> grant all privileges on pythondb.* to red@localhost identified by '123456';
授权部分权限给指定用户:
命令格式:grant select,update on数据库.* to 用户名@localhost identified by '123456';
mysql> GRANT select,update ON pythondb.* TO 'red'@'localhost' IDENTIFIED BY '123456';
注释:
@localhost 本地访问
@"%" 表示对所有非本地主机授权,不包括localhost。(localhost地址设为127.0.0.1,如果设为真实的本地地址,不知道是否可以,没有验证。)
此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。
四、删除用户
mysql>Delete FROM user Where User='test' and Host='localhost';
mysql>flush privileges;
删除账户及权限:mysql>drop user 用户名@'%';
mysql>drop user 用户名@ localhost;
五、修改指定用户的登录密码
mysql>update mysql.user set password=password('新密码') where User="test" and Host="localhost";
mysql>flush privileges;
六、插销权限
命令格式:revoke 权限 on 数据库.表 from '用户名'@'登录主机';//将to改为from
mysql>revoke all on *.* from ’red’@’%’
七、查看权限
命令格式:show grants;//自己
mysql>show grants for red@localhost;//指定用户指定host
权限 | 表列名称 | 注释 | 使用范围 |
select | Select_priv | 从一张表中检索 | 表 |
insert | Insert_priv | 把一条新纪录插入到一张存在的表中 | 表 |
update | Update_priv | 更新已存表中行的列字段 | 表 |
delete | Delete_priv | 删除表中的记录 | 表 |
create | Create_priv | 创建新的数据库和表 | 数据库、表、索引 |
drop | Drop_priv | 抛弃(删除)已经存在的数据库和表 | 数据库、表 |
reload | Reload_priv | 再读入授权表 | 服务器管理 |
shutdown | Shutdown_priv | 可能被滥用(通过终止服务器拒绝为其他用户服务) | 服务器管理 |
process | Process_priv | 查看当前执行的查询的普通文本,包含设定或改变口令查询 | 服务器管理 |
file | File_priv | 在服务器上读取任何可读的文件到数据库 | 服务器上的文件存取 |
grant | Grant_priv | 把自己的权限授权给其他用户 | 数据库、表 |
reference | Reference_priv | 打开或关闭记录文件 | 数据库、表 |
alter | Alter_priv | 改变表格,用于通过重新命名表来推翻权限系统 | 表 |
index | Index_priv | 创建或删除索引 | 表 |
作者:itRed 博客: GitHub:版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段说明, 且在文章明显位置给出原文链接,否则保留追究法律责任的权利。