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)

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...