本篇文章给大家带来了关于mysql的相关知识,主要介绍了MySQL中的用户创建与权限管理,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下。
推荐学习:mysql视频教程
【资料图】
一、用户管理
在mysql
库里有个user表
可以查看已经创建的用户
1.创建MySQL用户
基本语法:
mysql> create user "用户名"@"被允许连接的主机名称或主机的IP地址" identified by "用户密码";mysql> select user,host from mysql.user;
案例:创建一个MySQL账号,用户名:hhy,用户密码:123
mysql> create user "hhy"@"localhost" identified by "123";/*或*/mysql> create user "hhy"@"127.0.0.1" identified by "123";
案例:创建一个MySQL账号(要求开通远程连接),主机IP地址:192.1668.44.110,用户名:test,用户密码:123
mysql> create user "test"@"192.1668.44.110" identified by "123";
测试:在IP地址为192.168.44.110的主机上
# yum install mysql -y# mysql -h 192.168.44.110 -P 3306 -uharry -pEnter password:123
选项说明:192.168.44.110 :MySQL服务器端的IP地址
案例:创建一个MySQL账号(要求开通远程连接),主机IP的网段:10.1.1.0,用户名:jack,用户密码:123
create user "jack"@"192.168.44.%" identified by "123"
案例:创建一个MySQL账号(要求开通远程连接),要求面向所有主机开放,用户名:root,用户密码:123
create user "root"@"%" identified by "123";
2. 删除MySQL用户
基本用户:
mysql> drop user "用户名"@"主机名称或主机的IP地址";
特别说明:
如果在删除用户时没有指定主机的名称或主机的IP地址,则默认删除这个账号的所有信息。
案例:删除hhy这个账号
drop user "hhy"@"localhost";
案例:删除jack这个账号
drop user "jack"@"192.168.44.%";
案例:创建两个harry账号(localhost/10.1.1.23),然后删除其中的某个
mysql> create user "harry"@"localhost" identified by "123";mysql> create user "harry"@"192.168.44.110" identified mysql> drop user "harry"@"192.168.44.110";
删除MySQL账号的另外一种方式
mysql> delete from mysql.user where user="root" and host="%";mysql> flush privileges;
3. 修改MySQL用户
特别说明:MySQL用户重命名通常可以更改两部分,一部分是用户的名称,一部分是被允许访问的主机名称或主机的IP地址。
基本语法:
mysql> rename user 旧用户信息 to 新用户信息;
案例:把用户’root’@"%‘更改为’root’@‘10.1.1.%’
mysql> rename user "root"@"%" to "root"@"10.1.1.%";
案例:把’harry’@‘localhost’更名为’hhy’@‘localhost’
mysql> create user "tom"@"localhost" identified by "123";mysql> rename user "tom"@"localhost" to "hhy"@"localhost";
使用update语句更新用户信息
mysql> update mysql.user set user="hhy",host="localhost" where user="tom" and host="localhost";mysql> flush privileges;
二、权限管理
1. 权限说明
所有权限说明
USAGE无权限,只有登录数据库,只可以使用test或test_*数据库ALL所有权限以下权限为指定权限select/update/delete/super/replication slave/reload...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. 给用户授权
创建数据库表:
create database java;use java;create table tb_student(id mediumint not null auto_increment,name varchar(20),age tinyint unsigned default 0,gender enum("男","女"),address varchar(255),primary key(id)) engine=innodb default charset=utf8;insert into tb_student values (null,"刘备",33,"男","湖北省武汉市");insert into tb_student values (null,"貂蝉",18,"女","湖南省长沙市");insert into tb_student values (null,"关羽",32,"男","湖北省荆州市");insert into tb_student values (null,"大乔",20,"女","河南省漯河市");insert into tb_student values (null,"赵云",25,"男","河北省石家庄市");insert into tb_student values (null,"小乔",18,"女","湖北省荆州市");
基本语法:
mysql> grant 权限1,权限2 on 库.表 to 用户@主机mysql> grant 权限(列1,列2,...) on 库.表 to 用户@主机
案例:给thhy账号分配java数据库的查询权限
mysql> grant select on java.* to "hehanyu"@"192.168.44.%";mysql> flush privileges;
案例:给hehanyu账号分配java.tb_student数据表的权限(要求只能更改age字段)
mysql> grant update(age) on java.tb_student to "hehanyu"@"192.168.44.%";mysql> flush privileges;
案例:添加一个root@%账号,然后分配所有权限
create user "root"@"%" identified by "123";grant all on *.* to "root"@"%";flush privileges;
4. 查询用户权限
查询当前用户权限:
mysql> show grants;
查询其他用户权限:
mysql> show grants for "用户名称"@"授权的主机名称或IP地址";
5. with grant option选项
mysql> grant all on *.* to "amy"@"10.1.1.%" identified by "123" with grant option;mysql> grant all on *.* to "harry"@"10.1.1.%" identified by "123";
如以上命令所示:amy拥有下发权限的功能,而harry不具备下发权限的功能。
6.revoke回收权限
基本语法:
revoke 权限 on 库.表 from 用户;查看hehanyu用户权限mysql> show grants for "hehanyu"@"192.168.44.%";撤消指定的权限mysql> revoke update on java.tb_student from "tom"@"192.168.44.%";撤消所有的权限mysql> revoke select on java.* from "tom"@"192.168.44.%";
推荐学习:mysql视频教程
以上就是总结分享MySQL中的用户创建与权限管理的详细内容,更多请关注php中文网其它相关文章!