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

mysql 用户管理

目录

用户

创建用户

删除用户

修改密码

权限管理

赋权

查看权限

插销权限

总结


用户

mysql 的用户都存在于系统数据库 mysql 的user 表中

mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
31 rows in set (0.00 sec)
​

拿出来一个用户查看

mysql> select * from user\G
*************************** 1. row ***************************Host: localhostUser: rootSelect_priv: YInsert_priv: YUpdate_priv: YDelete_priv: YCreate_priv: YDrop_priv: YReload_priv: YShutdown_priv: YProcess_priv: YFile_priv: YGrant_priv: YReferences_priv: YIndex_priv: YAlter_priv: YShow_db_priv: YSuper_priv: YCreate_tmp_table_priv: YLock_tables_priv: YExecute_priv: YRepl_slave_priv: YRepl_client_priv: YCreate_view_priv: YShow_view_priv: YCreate_routine_priv: YAlter_routine_priv: YCreate_user_priv: YEvent_priv: YTrigger_priv: Y
Create_tablespace_priv: Yssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_passwordauthentication_string: *C76CBE83DA6FF179BA7913855C5DB371E756B93Cpassword_expired: Npassword_last_changed: 2023-05-22 17:48:27password_lifetime: NULLaccount_locked: N
​
  • HOST:主机

  • USER:用户

  • authentication_string:密码

  • *priv:权限

创建用户

create user 'user_name'@'登录主机/ip' identified by '密码';

案例

mysql> create user 'lxy'@'localhost' identified by '**********';
Query OK, 0 rows affected (0.00 sec)
​
mysql> select USER,HOST, authentication_string from user;
+---------------+-----------+-------------------------------------------+
| USER          | HOST      | authentication_string                     |
+---------------+-----------+-------------------------------------------+
| root          | localhost | *C76CBE83DA6FF179BA7913855C5DB371E756B93C |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys     | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| lxy           | localhost | *DF38BD36AAEA7091B73F02080EC9C196049763E7 |
+---------------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)
  • localhost:表示本主机

  • %:表示任意主机

  • 还可以直接加 ip

删除用户

drop user '用户名'@'登录主机';

案例

mysql> drop user 'lxy'@'localhost';
Query OK, 0 rows affected (0.00 sec)
​
mysql> select USER,HOST, authentication_string from user;
+---------------+-----------+-------------------------------------------+
| USER          | HOST      | authentication_string                     |
+---------------+-----------+-------------------------------------------+
| root          | localhost | *C76CBE83DA6FF179BA7913855C5DB371E756B93C |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys     | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+---------------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)

删除成功了

修改密码

修改密码有两种

  • 自己修改

    set password=password('密码');

  • root修改

    set password for '用户名'@'登陆主机'=password('密码');

上面修改密码就不演示了

权限管理

数据库的权限列表

权限上下文
CREATECreate_priv数据库、表或索引
DROPDrop_priv数据库或表
GRANT OPTIONGrant_priv数据库、表或保存的程序
REFERENCESReferences_priv数据库或表
ALTERAlter_priv
DELETEDelete_priv
INDEXIndex_priv
INSERTInsert_priv
SELECTSelect_priv
UPDATEUpdate priv
CREATE VIEWCreate view_priv视图
SHOW VIEWShow_view_priv视图
ALTER ROUTINEAlter_routine_priv保存的程序
CREATE ROUTINEcreate_routine priv保存的程序
EXECUTEExecute priv保存的程序
FILEFile priv服务器主机上的文件访问
CREATE TEMPORARY TABLESCreate_tmp_table_priv服务器管理
LOCK TABLESLock_tables_priv服务器管理
CREATE USERcreate user_priv服务器管理
PROCESSProcess_priv服务器管理
RELOADReload priv服务器管理
REPLICATION CLIENTRepl_client_priv服务器管理
REPLICATION SLAVERepl slave priv服务器管理
SHOW DATABASESShow_db_priv服务器管理
SHUTDOWNShutdown priv服务器管理
SUPERSuper_priv服务器管理

赋权

grant 权限列表 on 数据库.表名 to '用户名'@'登陆主机' [identified by '密码']

虽然可以在赋权的时候设置密码,但是这里建议在创建用户的时候就把密码设置好

案例

mysql> grant select,insert on scott.* to 'lxy'@'%';
Query OK, 0 rows affected (0.00 sec)

查看权限

show grants for '用户名'@'登陆主机';

案例

mysql> show grants for 'lxy'@'%';
+------------------------------------------------+
| Grants for lxy@%                               |
+------------------------------------------------+
| GRANT USAGE ON *.* TO 'lxy'@'%'                |
| GRANT SELECT, INSERT ON `scott`.* TO 'lxy'@'%' |
+------------------------------------------------+
2 rows in set (0.00 sec)

这里查看到正是我们赋的权限

插销权限

revoke 权限列表 on 数据库.表名 from '用户名'@'登陆主机';

案例

mysql> revoke select on scott.* from 'lxy'@'%';
Query OK, 0 rows affected (0.00 sec)mysql> show grants for 'lxy'@'%';
+----------------------------------------+
| Grants for lxy@%                       |
+----------------------------------------+
| GRANT USAGE ON *.* TO 'lxy'@'%'        |
| GRANT INSERT ON `scott`.* TO 'lxy'@'%' |
+----------------------------------------+
2 rows in set (0.00 sec)

这里看到 select 就被回收了

  • 如果像赋所有权限,那么就是all

  • grant all on 数据库.表名 to '用户名'@'登陆主机';

  • 如果像给所有库那么就是 *,如果想给库中所有表那么也是 *

总结

  • 前面我们的所有操作不管是创建用户或者是删除用户,甚至是修改密码本质都是对mysql里面的 user 表操作
  • 所以我们前面学习过的 CURD 操作都可以直接使用到user 表这里
  • 但是并不建议这样做
http://www.lryc.cn/news/154208.html

相关文章:

  • pyinstaller打包exe运行闪退
  • ARM 汇编基础知识
  • CRM 自动化如何改善销售和客户服务?
  • Bean 的六种作用域
  • go语言--锁
  • 再见,CSDN
  • MySQL总复习
  • 桌面平台层安全随手记录
  • 【Docker】 08-Dockerfile
  • 【二等奖方案】大规模金融图数据中异常风险行为模式挖掘赛题「Aries」解题思路
  • Github 下载指定文件夹(git sparse-checkout)
  • 蚂蚁集团SQLess 开源,与内部版有何区别?
  • An Efficient Memory-Augmented Transformer for Knowledge-Intensive NLP Tasks
  • Java项目中jar war pom包的区别
  • 整理mongodb文档:分页
  • 社区团购新玩法,生鲜蔬菜配货发货小程序商城
  • shell bash中设置命令set
  • 机器学习---预剪枝、后剪枝(REP、CCP、PEP、)
  • Python 爬虫—scrapy
  • ABB机器人20032转数计数器未更新故障报警处理方法
  • C# 记事本应用程序
  • 模型训练:优化人工智能和机器学习,完善DevOps工具的使用
  • WorldCoin 运营数据,业务安全分析
  • Java之Calender类的详细解析
  • uniapp 微信小程序 锚点跳转
  • 主成分分析笔记
  • android studio 的 adb配置
  • 【HTML5高级第一篇】Web存储 - cookie、localStorage、sessionStorage
  • Flink---1、概述、快速上手
  • QT实现TCP通信(服务器与客户端搭建)