创建mysql新用户,并且赋予权限管理

因业务需要 需为不同的数据库创建用户 并授权

在稍微大一点的公司里面都是进行着明显的权限管理。特别是操作数据库这样重要的东西,万一你要是一不小心删库了,就麻烦了,所以在公司里面一般一个项目 都会创建一个专门的用户指定其权限只能控制某一个数据库进行操作。

这样就可很合理的进行项目了。

 

要创建一个新的mysql用户的话,需要在root用户里面进行操作。
 

windows 通过cmd创建输入命令  若提示不能识别mysql 需配置 path 怎么配置 自行百度

首先登陆mysql:

mysql  -u账号名  -p密码

登录成功后

 登陆后查看所有数据库

 show databases;

先新建一个测试数据库

create database record character set utf8;

一、查看用户

查看用户并没有直接的SQL语句,而是进入 mysql 数据库的 user 表(这个mysql库和user表都是一开始就有的),直接用 select * from user;来查看有什么用户 

use 数据库名; 切换数据库

select database();  查看当前使用数据库

 

use mysql;
select * from user;

二、创建用户

使用命令:

create user 'user_name'@'host' identified by 'password';

  • user_name:要创建用户的名字。
  • host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则 填 ‘localhost’ ,如果允许从远程登陆,则填 ‘%’
  • password:新创建用户的登陆数据库密码,如果没密码可以不写。

创建不同限制的账户

-- 创建账户,"%"是无登录限制的,“123”是密码
create user 'liwker'@'%' identified by '123';

-- "localhost"是限制为本地登录
create user 'liwker'@'localhost' identified by '123';

-- 这个是限制 ip 为 10.11.20.30 的主机访问
create user 'liwker'@'10.11.20.30' identified by '123';

二、分配权限

grant privileges on databasename.tablename to 'username'@'host';

 

    privileges:表示要授予什么权力,例如可以有 select , insert ,delete,update等,如果要授予全部权力,则填 ALL
    databasename.tablename:表示用户的权限能用在哪个库的哪个表中,如果想要用户的权限很作用于所有的数据库所有的表,则填 " *.* ",* 是一个通配符,表示全部。
    ’username‘@‘host’:表示授权给哪个用户,username 的引号可以不加哦,但 host 必须加。

-- Liwker库的student表的 只读权限 分配给 liwker 账户
grant select on Liwker.student to liwker@'%';

-- Liwker库(所有表)的 多个权限 分配给 liwker 账户
grant select,insert,delete,update on Liwker.* to liwker@'%';

-- Liwker库的 所有权限 分配给 liwker 账户
grant all on Liwker.* to liwker@'%';

-- 所有库的 所有权限 分配给 liwker 账户
grant all on *.* to liwker@'%';

-- 刷新权限
flush privileges;

权限列表:

    ALTER: 修改表和索引。
    CREATE: 创建数据库和表。
    DELETE: 删除表中已有的记录。
    DROP: 抛弃(删除)数据库和表。
    INDEX: 创建或抛弃索引。
    INSERT: 向表中插入新行。
    REFERENCE: 未用。
    SELECT: 检索表中的记录。
    UPDATE: 修改现存表记录。
    FILE: 读或写服务器上的文件。
    PROCESS: 查看服务器中执行的线程信息或杀死线程。
    RELOAD: 重载授权表或清空日志、主机缓存或表缓存。
    SHUTDOWN: 关闭服务器。
    ALL: 所有权限,ALL PRIVILEGES同义词。
    USAGE: 特殊的 “无权限” 权限.

可根据上面的权限字段 为用户分配相应的权限

注意:

用以上命令授权的用户不能给其他用户授权,如果想这个用户能够给其他用户授权,就要在后面加上 WITH GRANT OPTION 如:
 

 

grant all on *.* to 'liwker'@'%' with grant option;

 

 补充 为用户创建数据库

 

create database basename DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

 

 

三、删除用户

drop user 'username'@'host';

四、设置与更改用户密码

set password for 'username'@'host' = password('newpassword');

-- 如果是设置当前用户的密码
set password = password('newpassword');

 

五、撤销账户权限

-- 回收权限,格式和分配差不多,grant -> revoke , to -> from
revoke select on Liwker.student from liwker@'%';

 

但注意:

若授予权利是这样写:grant select on *.* to liwker@'%';
则用 revoke select on Liwker.student to liwker@'%'; 是不能撤销用户 liwker 对 Liwker.student 中的 SELECT 权利的。

反过来 grant select on Liwker.student to liwker@'%'; 授予权力
用 revoke select on *.* to liwker@'%'; 也是不能用来撤销用户 liwker 对 Liwker 库的 student 表的SELECT 权利的
 

 

 

参考https://blog.csdn.net/qq_36146167/article/details/111182878

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值