MySQL用户及权限管理
创始人
2024-05-30 18:13:01
0

目录:

      • MySQL——用户及权限管理
        • 1、创建用户
        • 2、删除用户
        • 3、查询用户
        • 4、用户授权
        • 5、查看权限
        • 6、用户登录
        • 7、查系统表

MySQL——用户及权限管理

Mysql权限一览表:

PrivilegeContextdescription
[ALL PRIVILEGES]Server administration在全局或表级别授予所有全局特权或 所有表级权限
ALTERTables“Alter table”可以更改表结构,“Alter table”需要“create”和“insert”权限
ALTER ROUTINEStored routines更改或删除过程和函数
CREATEDatabases, tables, or indexes创建数据库,创建表,创建索引
CREATE ROUTINEStored routines创建存储过程和函数
CREATE TABLESPACEServer administration创建,删除表空间和日志组
CREATE TEMPORARY TABLESTables创建临时表,当一个会话创建完一个临时表。该会话具有对该表任何操作权限
CREATE USERServer administration创建用户,删除用户,重命名用户
CREATE VIEWViews创建视图
DELETETables从表中删除行
DROPDatabases, tables, or views删除数据库,删除表,删除视图
EVENTDatabases创建,删除,更改及展示 event scheduler
EXECUTEStored routines运行存储过程和函数
FILEFile access on server host该权限影响
GRANT OPTIONDatabases, tables, or stored routines将自己拥有的权限授给及回收其他用户的权限
INDEXTables创建删除索引
INSERTTables or columns对表插入行
LOCK TABLESDatabases执行lock tables/unlock tables的权限
PROCESSServer administration执行SHOW PROCESSLIST和KILL命令的权限,只能指定所有数据库。默认情况下,每个用户都可以执行SHOW PROCESSLIST命令,但是只能查询本用户的进程。
PROXYServer administration允许一个用户模拟或被当做另一个用户。
REFERENCESDatabases or tables创建外键
RELOADServer administrationFlush命令需要该权限
REPLICATION CLIENTServer administration使用SHOW MASTER STATUS, SHOW SLAVE STATUS, and SHOW BINARY LOGS语句
REPLICATION SLAVEServer administration允许用户向主库请求变化
SELECTTables or columns查询表的权限
SHOW DATABASESServer administration查看数据库列表
SHOW VIEWViews查看视图列表
SHUTDOWNServer administration调用关闭数据库的权限
SUPERServer administration
TRIGGERTables创建删除触发器
UPDATETables or columns更新表中行
USAGEServer administration在全局级别用grant配合去修改用户属性,比如resource limit

mysql里的用户以USER_NAME@HOST唯一确定一个用户,所以在创建用户和赋权时需要指定host,如果省略,则默认为%(无访问地址限制)

注意:host实现同pg_hba.conf的addres功能

1、创建用户

mysql>  create user test@'localhost' identified by 'test123';
Query OK, 0 rows affected (0.00 sec)

2、删除用户

drop user test@'localhost';

3、查询用户

mysql> select user,host from mysql.user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
| test          | localhost |
+---------------+-----------+
4 rows in set (0.00 sec)

4、用户授权

语法:

GRANT priv_type  ON [object_type] priv_level TO user [WITH GRANT OPTION]

回收权限使用revoke from 关键字其他同授予权限

mysql> grant select on mysql.user to test@'localhost';
Query OK, 0 rows affected (0.00 sec)
#可以使用user.*来授权
mysql> grant select on mysql.* to test@'localhost';
Query OK, 0 rows affected (0.00 sec)

5、查看权限

查看某一个用户权限:

show grants for USER_NAME@HOST
mysql> show grants for test@'localhost';
+------------------------------------------------------+
| Grants for test@localhost                            |
+------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test'@'localhost'             |
| GRANT SELECT ON `mysql`.* TO 'test'@'localhost'      |
| GRANT SELECT ON `mysql`.`user` TO 'test'@'localhost' |
+------------------------------------------------------+
3 rows in set (0.00 sec)

查看当前session登录用户的权限:

mysql> show grants;
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION        |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)

也可以从以下系统表查看:

  • 查看mysql.user表 ---- 查看全局所有库的权限
  • 查看mysql.db表 ---- 查看指定库的权限
  • 查看mysql.table_priv表 ---- 查看指定表的权限
  • 查看mysql.column_priv表 ---- 查看指定列的权限

更多用户及权限信息请参阅:官方文档

生产环境一般如下赋权:

业务用户类型赋权语句说明
查询用户Grant select on dbname.* to user_a给予查询所有表
开发用户Grant insert,update,select,delete on dbname.* to user_b给予增删改查权限
业务管理用户Grant all privileges on dbname.* to user_c给予业务库所有权限

6、用户登录

# mysql -utest -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 5.7.38 MySQL Community Server (GPL)Copyright (c) 2000, 2022, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> select user();
+----------------+
| user()         |
+----------------+
| test@localhost |
+----------------+
1 row in set (0.00 sec)mysql> 

7、查系统表

mysql> select user,host from mysql.user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
| test          | localhost |
+---------------+-----------+
4 rows in set (0.00 sec)

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...