mysql创建新用户、数据库权限分配、密码修改

5 篇文章 0 订阅
2 篇文章 0 订阅
创建用户

1、查看已经存在的用户

-- 查看有哪些用户
SELECT * FROM mysql.user

2、创建新的用户user1

-- 创建用户并给所有IP的权限(CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';)
CREATE USER 'user1'@'%' IDENTIFIED BY 'user1paasword';

3、查看用户的权限

-- 查看`user1`用户权限
SHOW GRANTS FOR 'user1'@'%';

4、修改密码

MySQL [mysql]> ALTER USER 'root'@'%' IDENTIFIED BY '数据库密码';
授予权限

1、为已存在的用户赋权
1.1、授予 xxx 用户对数据库 test读权限(针对的是已经存在的用户)

GRANT SELECT ON test.* TO 'xxx'@'%';

1.2、为 xxx 用户授予所有数据库全部权限(针对的是已经存在的用户)

GRANT ALL PRIVILEGES ON *.* TO 'xxx'@'%';

2、自动创建用户赋权
GRANT 为一个不存在的用户授予权限时,默认并不会自动创建用户。该行为受SQL Mode中的 NO_AUTO_CREATE_USER控制。
如果从 SQL Mode 中去掉 NO_AUTO_CREATE_USER,当 GRANT 的目标用户不存在时,TiDB 会自动创建用户。
2.1、查看当前sql的设置

mysql> select @@sql_mode;
| @@sql_mode                                                                                                                                |
+-------------------------------------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

2.2、去掉 NO_AUTO_CREATE_USER,重新设置sql_mode支持自动创建用户

set @@sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

2.3、test数据库赋权自动创建用户xxxx,密码yyyyy

GRANT ALL PRIVILEGES ON test.* TO 'xxxx'@'%' IDENTIFIED BY 'yyyyy';

2.4、查看赋予的权限

SELECT user,host FROM mysql.user WHERE user='xxxx';
+------|------+
| user | host |
+------|------+
| xxxx | %    |
+------|------+
1 row in set (0.00 sec)
收回权限

REVOKE语句与 GRANT 对应

  • 注:REVOKE 收回权限时只做精确匹配,若找不到记录则报错。而 GRANT 授予权限时可以使用模糊匹配。

1、回收user1test数据库的all权限

-- REVOKE ALL PRIVILEGES ON `test`.* FROM 'genius'@'localhost';
REVOKE ALL PRIVILEGES ON `test`.* FROM 'user1'@'%';

2、查看user1的权限

SHOW GRANTS for 'user1'@'%';
创建用户分配权限常用命令
-- 查看有哪些用户
SELECT * FROM mysql.user

-- 创建用户并给所有IP的权限(CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';CREATE USER 'user1'@'%' IDENTIFIED BY 'user1paasword';

-- 查看用户权限
SHOW GRANTS FOR 'user1'@'%';

-- 撤销账户全局特权 REVOKE收回权限时只做精确匹配
REVOKE ALL PRIVILEGES ON 数据库.*  FROM 'user1'@'%';

-- 修改密码
ALTER USER 'user1'@'%' IDENTIFIED BY 'user1paaswordnew';

-- 用户赋权(GRANT ALL PRIVILEGES ON *.* TO 'xxx'@'%';GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%'; -- 给user1用户所有数据库的全部权限
GRANT ALL PRIVILEGES ON 数据库.* TO 'user1'@'%';

mysql官网参考
tidb官网参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值