本篇文章给我们带来了关于mysql的相关知识,主要介绍了MySQL中的用户创立与权限办理,文章经过环绕主题展开具体的内容介绍,具有必定的参阅价值,需求的小伙伴能够参阅一下。

总结分享MySQL中的用户创建与权限管理

  • 引荐学习:mysql视频教程

一、用户办理

mysql库里有个user表能够检查已经创立的用户

1.创立MySQL用户

留意: MySQL中不能单纯经过用户名来阐明用户,必需要加上主机。如hhy@10.1.1.1

根本语法:

mysql>createuser'用户名'@'被答应衔接的主机称号或主机的IP地址'identifiedby'用户暗码';
mysql>selectuser,hostfrommysql.user;

事例: 创立一个MySQL账号,用户名:hhy,用户暗码:123

mysql>createuser'hhy'@'localhost'identifiedby'123';
/*或*/
mysql>createuser'hhy'@'127.0.0.1'identifiedby'123';

事例: 创立一个MySQL账号(要求开通长途衔接),主机IP地址:192.1668.44.110,用户名:test,用户暗码:123

mysql>createuser'test'@'192.1668.44.110'identifiedby'123';

测试: 在IP地址为192.168.44.110的主机上

#yuminstallmysql-y
#mysql-h192.168.44.110-P3306-uharry-p
Enterpassword:123

选项阐明: 192.168.44.110 :MySQL服务器端的IP地址

yum装置mysql: 代表装置的是MySQL的客户端
yum装置mysql-server: 代表装置的是MySQL的服务器端

事例: 创立一个MySQL账号(要求开通长途衔接),主机IP的网段:10.1.1.0,用户名:jack,用户暗码:123

createuser'jack'@'192.168.44.%'identifiedby'123'

事例: 创立一个MySQL账号(要求开通长途衔接),要求面向一切主机敞开,用户名:root,用户暗码:123

createuser'root'@'%'identifiedby'123';

2. 删去MySQL用户

根本用户:

mysql> drop user ‘用户名’@’主机称号或主机的IP地址’;

特别阐明:

假如在删去用户时没有指定主机的称号或主机的IP地址,则默认删去这个账号的一切信息。

事例: 删去hhy这个账号

dropuser'hhy'@'localhost';

事例: 删去jack这个账号

dropuser'jack'@'192.168.44.%';

事例: 创立两个harry账号(localhost/10.1.1.23),然后删去其间的某个

mysql>createuser'harry'@'localhost'identifiedby'123';
mysql>createuser'harry'@'192.168.44.110'identified
mysql>dropuser'harry'@'192.168.44.110';

删去MySQL账号的别的一种方法

mysql>deletefrommysql.userwhereuser='root'andhost='%';
mysql>flushprivileges;

3. 修改MySQL用户

特别阐明: MySQL用户重命名一般能够更改两部分,一部分是用户的称号,一部分是被答应拜访的主机称号或主机的IP地址。

根本语法:

mysql>renameuser旧用户信息to新用户信息;

事例: 把用户’root’@’%‘更改为’root’@‘10.1.1.%’

mysql>renameuser'root'@'%'to'root'@'10.1.1.%';

事例: 把’harry’@‘localhost’更名为’hhy’@‘localhost’

mysql>createuser'tom'@'localhost'identifiedby'123';
mysql>renameuser'tom'@'localhost'to'hhy'@'localhost';

运用update语句更新用户信息

mysql>updatemysql.usersetuser='hhy',host='localhost'whereuser='tom'andhost='localhost';
mysql>flushprivileges;

二、权限办理

1. 权限阐明

一切权限阐明

USAGE	无权限,只有登录数据库,只能够运用test或test_*数据库
ALL		一切权限
以下权限为指定权限
select/update/delete/super/replicationslave/reload...
withgrantoption选项表明答应把自己的权限授予其它用户或许从其他用户回收自己的权限

默认情况下,分配权限时假如没有指定with grant option,代表这个用户不能下发权限给其他用户,但是这个权限分配不能超过本身权限。

2. 权限保存方位(了解)

  • mysql.user: 一切mysql用户的账号和暗码,以及用户对全库全表权限(.
  • mysql.db: 非mysql库的授权都保存在此(db.*)
  • mysql.table_priv: 某库某表的授权(db.table)
  • mysql.columns_priv: 某库某表某列的授权(db.table.col1)
  • mysql.procs_priv: 某库存储进程的授权

3. 给用户授权

创立数据库表:

createdatabasejava;
usejava;
createtabletb_student(
	idmediumintnotnullauto_increment,
	namevarchar(20),
	agetinyintunsigneddefault0,
	genderenum('男','女'),
	addressvarchar(255),
	primarykey(id)
)engine=innodbdefaultcharset=utf8;
insertintotb_studentvalues(null,'刘备',33,'男','湖北省武汉市');
insertintotb_studentvalues(null,'貂蝉',18,'女','湖南省长沙市');
insertintotb_studentvalues(null,'关羽',32,'男','湖北省荆州市');
insertintotb_studentvalues(null,'大乔',20,'女','河南省漯河市');
insertintotb_studentvalues(null,'赵云',25,'男','河北省石家庄市');
insertintotb_studentvalues(null,'小乔',18,'女','湖北省荆州市');

根本语法:

mysql>grant权限1,权限2on库.表to用户@主机
mysql>grant权限(列1,列2,...)on库.表to用户@主机

库.表表明方法:*.*代表一切数据库的一切数据表,db_itheima.*代表db_itheima数据库中的一切数据表,db_itheima.tb_admin,代表db_itheima数据库中的tb_admin表

事例: 给thhy账号分配java数据库的查询权限

mysql>grantselectonjava.*to'hehanyu'@'192.168.44.%';
mysql>flushprivileges;

事例: 给hehanyu账号分配java.tb_student数据表的权限(要求只能更改age字段)

mysql>grantupdate(age)onjava.tb_studentto'hehanyu'@'192.168.44.%';
mysql>flushprivileges;

事例: 添加一个root@%账号,然后分配一切权限

createuser'root'@'%'identifiedby'123';
grantallon*.*to'root'@'%';
flushprivileges;

4. 查询用户权限

查询当前用户权限:

mysql>showgrants;

查询其他用户权限:

mysql>showgrantsfor'用户称号'@'授权的主机称号或IP地址';

5. with grant option选项

mysql>grantallon*.*to'amy'@'10.1.1.%'identifiedby'123'withgrantoption;
mysql>grantallon*.*to'harry'@'10.1.1.%'identifiedby'123';

如以上命令所示: amy拥有下发权限的功用,而harry不具备下发权限的功用。

假如grant授权时没有with grant option选项,则其无法为其他用户授权。

6.revoke回收权限

根本语法:

revoke权限on库.表from用户;
检查hehanyu用户权限
mysql>showgrantsfor'hehanyu'@'192.168.44.%';
吊销指定的权限
mysql>revokeupdateonjava.tb_studentfrom'tom'@'192.168.44.%';
吊销一切的权限
mysql>revokeselectonjava.*from'tom'@'192.168.44.%';
  • 引荐学习:mysql视频教程
  • 本文转载自:www.php.cn/mysql-tutor…