数据库-创建用户及授权

创建用户及授权(常用)

mysql8.0必须是先创建用户再授权

生产复杂强口令
openssl rand -base64 40 | cut -c 1-12
rDjTpagOjmVE

方法一:先创建账号并设置密码
mysql> create user tom@'%' identified by 'XMKx6da2etPXBD9.'; 

在进行授权
想在远程登录 就把@后面换成%号
mysql>grant all privileges on qf.* to 'tom'@'%';

mysql> flush privileges; #更新授权表

在进行测试(此时已经可以登录成功)
mysql -utom -p'XMKx6da2etPXBD9.'


如果是这样授权 此时的密码会被更改成123456
mysql>grant all privileges on qf.* to 'tom'@'localhost' identified by '123456';



with grant option;这个参数带上以后 tom就可以给别人授权了
mysql>grant all privileges on qf.* to 'tom'@'%' with grant option;

注:
identified by :设置密码
在用户tom@'  ' 这里 选择:
%:允许所有主机远程登陆包括localhost。也可以指定某个ip,允许某个ip登陆。也可以是一个网段。
localhost:只允许本地用户登录
==客户端主机	    %				     所有主机远程登录
			192.168.246.%		    192.168.246.0网段的所有主机
			192.168.246.252		    指定主机
			localhost               只允许本地用户登录
备注:
1.无用户时可以创建用户并指定口令
2.口令有密码复杂性要求
3.%表示任意主机
口令复杂性要求出错提示:
需要执行两个参数来把mysql默认的密码强度的取消
mysql>set global validate_password_policy=0; 
mysql>set global validate_password_mixed_case_count=2;

授权root进行远程登录

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

flush privileges;
方式二:使用命令创建用户并授权:grant   
也可创建新账户(不过后面的版本会移除这个功能,建议使用create user) 
语法格式:
grant 权限列表  on 库名.表名 to '用户名'@'客户端主机' IDENTIFIED BY 'Qf@123';
 ==权限列表		all	 		所有权限(不包括授权权限)
			select,update	
			select, insert
#注意:root用授权时候grant授权权限不要给予
								
 ==数据库.表名	*.*			所有库下的所有表
			   web.*		web库下的所有表
			web.stu_info	web库下的stu_info表

#单独授权
给刚才创建的用户tom授权:
mysql> grant select,insert on *.* to 'tom'@'localhost';
#更新授权表
mysql> flush privileges; 

权限简介

权限简介

| 权限                   | 权限级别                 | 权限说明                    
| :--------------------- | :--------------------- | :------------------------------------
| CREATE                 | 数据库、表或索引          | 创建数据库、表或索引权限                 
| DROP                   | 数据库或表               | 删除数据库或表权限                       
| GRANT OPTION           | 数据库、表或保存的程序     | 赋予权限选项 #小心给予                 
| ALTER                  | 表                     | 更改表,比如添加字段、索引等               
| DELETE                 | 表                     | 删除数据权限                             
| INDEX                  | 表                     | 索引权限                               
| INSERT                 | 表                     | 插入权限                               
| SELECT                 | 表                     | 查询权限                               
| UPDATE                 | 表                     | 更新权限                               
| LOCK TABLES            | 服务器管理              | 锁表权限                               
| CREATE USER            | 服务器管理             | 创建用户权限                             
| REPLICATION SLAVE      | 服务器管理             | 复制权限                                 
| SHOW DATABASES         | 服务器管理             | 查看数据库权限                           

查看权限

查看权限
1.看自己的权限:
mysql> show grants;
*************************** 1. row ***************************
Grants for root@%: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION
    
2.看别人的权限:
mysql> show grants for tom@'localhost';
*************************** 1. row ***************************
Grants for tom@localhost: GRANT SELECT, INSERT ON *.* TO 'tom'@'localhost'  

移除权限

移除用户权限
语法:REVOKE 权限 ON 数据库.数据表 FROM '用户'@'IP地址';
- 被回收的权限必须存在,否则会出错
- 整个数据库,使用 ON datebase.*;
- 特定的表:使用 ON datebase.table;




给tom用户授权
grant all privileges on *.* to 'tom'@'%';
grant select,insert on *.* to 'tom'@'%';
flush privileges;

移除用户tom权限
revoke all privileges on *.* from tom@'%'; 
flush privileges;

移除用户tom插入和选择权限
revoke insert,select on *.* from tom@'%'; 
flush privileges;

查看用户tom权限
show grants for tom@'%';




mysql> revoke select,delete on *.* from jack@'%';   #回收指定权限
mysql> revoke all privileges on *.* from jack@'%';  #回收所有权限
mysql> flush privileges;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值