用户授权和root密码管理

grant授权

  • 在数据库服务器上添加新用户并设置访问权限及密码
mysql> mysql -uroot -pxxxxxxxx	#使用root连接数据库
mysql> grant 权限列表 on 库.表 to 用户名@'客户端地址' identified by 'xxx';	#密码需要符合密码策略
mysql> grant 权限列表 on 库.表 to 用户名@'客户端地址' identified by 'xxx' with grant option;	#给新用户授权使用grant命令
mysql> grant 权限列表 on 库.表 to 用户名@'%' identified by 'xxx';	#任意地址
mysql> grant 权限列表 on 库.表 to 用户名@'192.168.4.%' identified by 'xxx';	#指定网段
mysql> grant 权限类型(字段1,字段2,...) on 库.表 to 用户名@'地址' identified by 'xxx';	#指定字段

权限列表

  1. all //所有权限
  2. usage //无权限
  3. select,insert,delete //个别权限
  4. select,update(字段1,字段2,…) //指定字段

相关命令

mysql> select user();	#查看登录用户名及地址
mysql> show grants;	 #查看当前用户的权限
mysql> show grants for 用户名@'地址';	# 管理员查看授权
mysql> set password=password("xxxxxxx"); #被授权的用户修改自己的密码
mysql> set password for 用户名@'地址'=password("xxxxxxx");	#管理员修改用户密码
mysql> drop user 用户名@'地址';	#管理员删除用户

授权库

mysql库,记录授权信息

  • user表 记录已有的授权用户及权限
  • db表 记录已有的授权用户对数据库的访问权限
  • tables_priv表 记录已有的授权用户对的访问权限
  • columns_priv表 记录已有的授权用户对字段的访问权限

可以通过表记录查看用户权限,也可以通过更新记录修改用户权限

mysql> update mysql.user set Delete_priv="N" , Grant_priv="N" where user="mydba" and host="%";

revoke取消授权

mysql> show grants for 用户名@'地址';	#查看当前权限
mysql> revoke 权限列表 on 库.表 from 用户名@'地址';	#取消授权

恢复root密码

  1. 停止MySQL程序
  2. 跳过授权表启动MySQL服务
  3. 修改root密码
  4. 以正常方式启动服务
] systemctl stop mysqld
] vim /etc/my.cnf
[mysqld]
skip-grant-tables	#新增此行,跳过授权表
#validate_password_policy=0	 #注释密码规则
#validate_password_length=6  #注释密码规则
...
] systemctl restart mysqld
] mysql	#连接数据库
mysql> update mysql.user set authentication_string=password("密码") where user="root" and host="localhost"; #修改密码
mysql> flush privileges; 

重置root密码

] mysqladmin -uroot -p旧密码 password "新密码" #命令行修改root密码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值