目录

保姆级喂饭教程MySQL修改用户对应IP范围

【保姆级喂饭教程】MySQL修改用户对应IP范围

[https://csdnimg.cn/release/blogv2/dist/pc/img/activeVector.png VibeCoding·九月创作之星挑战赛 10w+人浏览 1.3k人参与

https://csdnimg.cn/release/blogv2/dist/pc/img/arrowright-line-White.png]( )

前言

之前创建了一个本地MySQL用户,后续需要分享给同事,所以就需要修改对应ip限制,做个小总结

一、创建用户

-- 创建本地用户
CREATE USER 'python'@'localhost' IDENTIFIED BY 'password';

权限相关表介绍:
MySQL中有三张用户权限相关表,都在基本的mysql数据库中

  • user:用户权限表
  • db:数据库权限表
  • tables_priv:数据表权限表

二、设置权限

设置访问某个数据库的权限

-- 授权常用权限
GRANT CREATE, DROP, ALTER, INDEX, SELECT, INSERT, UPDATE, DELETE ON mydatabase.* TO 'python'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;

所有权限:

PrivilegeGrant Table ColumnContext
ALL [PRIVILEGES]Synonym for “all privileges”Server administration
ALTERAlter_privTables
ALTER ROUTINEAlter_routine_privStored routines
CREATECreate_privDatabases, tables, or indexes
CREATE ROUTINECreate_routine_privStored routines
CREATE TABLESPACECreate_tablespace_privServer administration
CREATE TEMPORARY TABLESCreate_tmp_table_privTables
CREATE USERCreate_user_privServer administration
CREATE VIEWCreate_view_privViews
DELETEDelete_privTables
DROPDrop_privDatabases, tables, or views
EVENTEvent_privDatabases
EXECUTEExecute_privStored routines
FILEFile_privFile access on server host
GRANT OPTIONGrant_privDatabases, tables, or stored routines
INDEXIndex_privTables
INSERTInsert_privTables or columns
LOCK TABLESLock_tables_privDatabases
PROCESSProcess_privServer administration
PROXYSee proxies_priv tableServer administration
REFERENCESReferences_privDatabases or tables
RELOADReload_privServer administration
REPLICATION CLIENTRepl_client_privServer administration
REPLICATION SLAVERepl_slave_privServer administration
SELECTSelect_privTables or columns
SHOW DATABASESShow_db_privServer administration
SHOW VIEWShow_view_privViews
SHUTDOWNShutdown_privServer administration
SUPERSuper_privServer administration
TRIGGERTrigger_privTables
UPDATEUpdate_privTables or columns
USAGESynonym for “no privileges”Server administration

三、修改IP

1. 直接更新权限表

UPDATE mysql.user SET host='%' WHERE user='python' AND host='localhost';
FLUSH PRIVILEGES;

这样更新完以后,同事进行登录,只能看到一个information_schema数据库,看不到其他数据库,因为db表中python的host还是localhost
需要再修改db表:

UPDATE mysql.db SET host='%' WHERE user='python' AND host='localhost';
FLUSH PRIVILEGES;

如果设置了单张表的权限还需要再修改tables_priv

UPDATE mysql.tables_priv SET host='%' WHERE user='python' AND host='localhost';
FLUSH PRIVILEGES;

2. 使用 RENAME USER 命令

-- 更规范的修改方式(MySQL 5.0.2+支持)
RENAME USER 'python'@'localhost' TO 'python'@'%';

参考文献


喜欢的点个关注吧><!祝你永无bug~

/*
                   _ooOoo_
                  o8888888o
                  88" . "88
                  (| -_- |)
                  O\  =  /O
               ____/`---'\____
             .'  \\|     |//  `.
            /  \\|||  :  |||//  \
           /  _||||| -:- |||||-  \
           |   | \\\  -  /// |   |
           | \_|  ''\---/''  |   |
           \  .-\__  `-`  ___/-. /
         ___`. .'  /--.--\  `. . __
      ."" '<  `.___\_<|>_/___.'  >'"".
     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
     \  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======
                   `=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            佛祖保佑       永无BUG
*/