当前位置: 首页 > news >正文

MySQL创建新用户并赋予指定数据库权限

创建账号时并赋予权限语法如下:

grant all privileges on *.* to '用户名'@'登录IP或者域名' identified by '登录密码' with grant option;
  • all privileges: 表示授权用户全部权限,当然你也可以指定赋予具体权限,比如SELECT、UPDATE、CREATE、DROP等。
  • on:表示这些权限可以作用于哪些数据库和哪些表,*.*表示作用于所有数据库和所有表,格式为数据库名.表名。比如有一个test库,想让yxc用户拥有查看test库所有表的权限,那么可以这样写:grant SELECT on test.* to 'yxc'@'%' identified by '登录密码';
  • to:将权限授予哪个用户。格式:'用户名'@'登录IP或域名'。这里登录IP或域名后面如果是’localhost’表示该用户只能在本地主机上进行访问,如果是通配符’%'代表允许从任何主机登录。
  • IDENTIFIED by:指定用户的登录密码。
  • with grant option:表示允许用户将自己的权限授权给其它用户。

部分权限含义如下:

权限含义
ALL [PRIVILEGES]设置除GRANT OPTION之外的所有简单权限
ALTER允许使用ALTER TABLE
ALTER ROUTINE更改或取消已存储的子程序
CREATE允许使用CREATE TABLE
CREATE USER允许使用CREATE USER, DROP USER, RENAME USER和REVOKE ALL PRIVILEGES。
CREATE VIEW允许使用CREATE VIEW
DELETE允许使用DELETE
DROP允许使用DROP TABLE
INDEX允许使用CREATE INDEX和DROP INDEX
INSERT允许使用INSERT
SELECT允许使用SELECT
SHOW DATABASESSHOW DATABASES显示所有数据库
SHOW VIEW允许使用SHOW CREATE VIEW
SHUTDOWN允许使用SHUTDOWN关闭数据库服务器
UPDATE允许使用UPDATE
GRANT OPTION允许授予权限

eg:创建用户yxc,设置密码yxc@224!707,并赋予test数据库所有权限,并允许将自己的权限授权给其它用户。

grant all privileges on test.* to 'yxc'@'%' identified by 'yxc@224!707' with grant option;

如果有些MySQL的数据库版本不允许在创建用户时就赋予权限,那么需要将创建和权限赋予分为两步:

create user 'yxc'@'%' identified by 'yxc@224!707'; -- 创建用户
GRANT all privileges ON  test.* TO 'yxc'@'%'; -- 将所有权限赋予给用户

然后刷新权限使更改生效。

FLUSH PRIVILEGES; 

其他语法:

# 查看用户拥有的权限
SHOW GRANTS FOR 'yxc'@'%';# 删除用户
DROP USER 'yxc'@'%'; -- 删除用户yxc,用户名(User)和主机名(Host)构成
FLUSH PRIVILEGES; -- 刷新权限# 禁用用户
ALTER USER 'yxc'@'%' ACCOUNT lock; -- 禁用账号yxc
FLUSH PRIVILEGES; -- 刷新权限# 解除禁用
ALTER USER 'yxc'@'%' ACCOUNT UNLOCK; -- 解除禁用账号yxc
FLUSH PRIVILEGES; -- 刷新权限# 重命名用户名
-- 语法:
rename user '用户名'@'IP或者域名' to '新用户名'@'IP或者域名';
-- eg:将yxc用户重命名为ly
rename user 'yxc'@'%' to 'ly'@'%';# 修改用户密码 
set password for '用户名'@'IP或者域名'=password('新密码')# 撤销权限REVOKE
REVOKE SELECT ON test.* FROM 'yxc'@'%'; -- 撤销yxc在数据库test的权限# 查看密码过期时间
show variables like 'default_password_lifetime';-- 0表示永不过期
# 设置密码过期时间为180天
set global default_password_lifetime=180;
# 强制用户密码过期
ALTER USER 'yxc'@'%' PASSWORD EXPIRE;


更多技术干货,请持续关注程序员大佬超。
原创不易,转载请务必注明出处。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • centos系统查找mysql的配置文件位置
  • iOS UITableView自带滑动手势和父视图添加滑动手势冲突响应机制探索
  • 数据结构基础--------【二叉树基础】
  • 视频共享交换平台LntonCVS视频监控平台智慧加油站安全管理方案
  • Haproxy搭建Web群集
  • (一)、python程序--模拟电脑鼠走迷宫
  • element plus 实现跨页面+跨tab栏多选
  • RK3568平台(opencv篇)opencv处理图像视频
  • 雅思词汇及发音积累 2024.7.10
  • Python 轻松生成多种条形码、二维码 (Code 128、EAN-13、QR code等)
  • 5个在线地图瓦片URL分享
  • nginx的知识面试易考点
  • PTC可复位保险丝 vs 传统型保险丝:全面对比分析
  • 零信任网络安全
  • 怎样将aac转换mp3格式?推荐四个aac转MP3的方法
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【RocksDB】TransactionDB源码分析
  • 4个实用的微服务测试策略
  • Docker下部署自己的LNMP工作环境
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • JavaScript设计模式系列一:工厂模式
  • node.js
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • REST架构的思考
  • SpringBoot 实战 (三) | 配置文件详解
  • 从0实现一个tiny react(三)生命周期
  • 关于Java中分层中遇到的一些问题
  • 巧用 TypeScript (一)
  • 如何设计一个微型分布式架构?
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (安卓)跳转应用市场APP详情页的方式
  • (笔记)M1使用hombrew安装qemu
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (十) 初识 Docker file
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (转)程序员疫苗:代码注入
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .net web项目 调用webService
  • .Net 代码性能 - (1)
  • .NetCore项目nginx发布
  • .NET业务框架的构建
  • ::前边啥也没有
  • @EnableWebSecurity 注解的用途及适用场景
  • @Transactional 参数详解
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [2023年]-hadoop面试真题(一)
  • [BZOJ3223]文艺平衡树
  • [C/C++] -- 二叉树
  • [C++参考]拷贝构造函数的参数必须是引用类型