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

MySQL——数据库的高级操作(三)权限管理(2)授予权限

        在 MySQL 中提供了一个GRANT 语句,该语句可以为用户授权。

        GRANT语句的语法格式如下:

GRANT privileges [(columns)][,privileges[(columns)]] ON database.table
    To 'username'@'hostname' [IDENTIFIED BY [PASSWORD]'password']
    [,'username '@'hostname' [IDENTIFIED BY [PASSWORD]'password']]...
    [WITH with option [with option]...]

        上述语法格式中,privileges 表示权限类型,columns 参数表示权限作用于某一列,该参数可以省略不写,此时权限作用于整个表,username 表示用户名,hostname 表示主机名,IDENTIFIED BY 参数为用户设置密码,PASSWORD 参数为关键字,password 为用户的新密码。

        WITH 关键字后面可以带有多个参数 with_option,这个参数有5个取值,具体如下。

(1)GRANT OPTION:将自己的权限授予其他用户。

(2)MAX_QUERIES_PER_HOUR count:设置每小时最多可以执行多少次(count)查询。

(3)MAX_UPDATES_PER_HOUR count:设置每小时最多可以执行多少次更新

(4)MAX_CONNECTIONS_PER_HOUR count:设置每小时最大的连接数量。

(5)MAX USER_CONNECTIONS:设置每个用户最多可以同时建立连接的数量。

        使用 GRANT 语句创建一个新的用户,用户名为 user4、密码为 123,user4 用户对所有数据库有 INSERT、SELECT 权限,并使用 WITH GRANT OPTION 子句,GRANT语句如下:

GRANT INSERT,SELECT ON *.* To 'user4'@'localhost' IDENTIFIED BY '123' WITH GRANT OPTION;

        上述语句执行成功后,可以使用 SELECT语句来查询 user 表中的用户权限,查询结果如下:

mysql> use mysql;
Database changed
mysql> SELECT Host,User,password,Insert_priv,Select_priv,Grant_priv FROM mysql.user WHERE user='user4'\G
************************* 1.row *************************
       Host: localhost
       User: user4
   Password: *23AE809DDACAF96AFOFD78ED04B6A265E05AA257
Insert priv: Y
Select priv: Y
 Grant priv: Y
1 row in set (0.05 sec)

        从上述结果可以看出,User 的值为 user4,Insert_priv、Select_priv、Grant_priv 的值都为 Y,因此可以说明用户 user4 对所有数据库具有增加、查询以及对其他用户赋予相应权限的功能。


http://www.kler.cn/news/305936.html

相关文章:

  • 自动驾驶自动泊车场景应用总结
  • RAII 与 std::lock_guard 在 C++ 中的应用:自动化互斥锁管理与线程安全
  • 【6大设计原则】迪米特法则:解密软件设计中的“最少知识原则”
  • 创建一个Java项目在IntelliJ IDEA中
  • 【AI绘画】Midjourney进阶:景别详解
  • 数学建模常用模型---“算法”总结(含特性和应用场景)
  • 聊天组件 Vue3-beautiful-chat
  • 【QT】实现TCP服务器,客户端之间的通信
  • 国风编曲:了解国风 民族调式 五声音阶 作/编曲思路 变化音 六声、七声调式
  • 【开源免费】基于SpringBoot+Vue.JS在线旅游网站(JAVA毕业设计)
  • 威胁建模网络与云威胁
  • SQL进阶的技巧:如何实现某列的累计乘积?
  • Codeforces Round 921 (Div. 2) A~D
  • 英飞凌MCU第五代高性能CAPSENSE技术PSoC4000T
  • Leetcode 二叉树中根遍历
  • 力扣-96.不同的二叉搜索树 题目详解
  • Android Radio2.0——动态列表回调(七)
  • tcp、http和rpc
  • WebSocket详细介绍
  • OPEN AI o1已经像人类一样思考了。。。
  • 【iOS】present和push
  • 【AcWing】快速排序的Go实现
  • yolo训练出现Could not load library libcudnn_cnn_train.so.8问题及解决方法
  • 从大脑图谱/ROI中提取BOLD信号
  • 简单易懂的方式来解释机器学习(ML)和深度学习(DL)的区别与联系
  • 通信工程学习:什么是DWDM密集波分复用
  • 小众语言ruby在苹果中的初步应用
  • self-play RL学习笔记
  • 【开源免费】基于SpringBoot+Vue.JS购物商城网站(JAVA毕业设计)
  • ImDisk Toolkit将一部分RAM模拟成硬盘分区