priv

更新时间:2022-12-31 10:07:54 阅读: 评论:0


2022年12月31日发(作者:我们身边的活雷锋)

浅析mysql主从复制中复制⽤户的权限管理

在⽤复制账号对mysqlsalve管理过程中,使⽤哪些权限合适?⾸先看⼀下mysql官⽅提供的权限表:

权限列上下⽂

CREATECreate_priv数据库、表或索引

DROPDrop_priv数据库或表

GRANTOPTIONGrant_priv数据库、表或保存的程序

REFERENCESReferences_priv数据库或表

ALTERAlter_priv表

DELETEDelete_priv表

INDEXIndex_priv表

INSERTInrt_priv表

SELECTSelect_priv表

UPDATEUpdate_priv表

CREATEVIEWCreate_view_priv视图

SHOWVIEWShow_view_priv视图

ALTERROUTINEAlter_routine_priv保存的程序

CREATEROUTINECreate_routine_priv保存的程序

EXECUTEExecute_priv保存的程序

FILEFile_priv服务器主机上的⽂件访问

CREATETEMPORARYTABLESCreate_tmp_table_priv服务器管理

LOCKTABLESLock_tables_priv服务器管理

CREATEUSERCreate_ur_priv服务器管理

PROCESSProcess_priv服务器管理

RELOADReload_priv服务器管理

REPLICATIONCLIENTRepl_client_priv服务器管理

REPLICATIONSLAVERepl_slave_priv服务器管理

SHOWDATABASESShow_db_priv服务器管理

SHUTDOWNShutdown_priv服务器管理

SUPERSuper_priv服务器管理

怎样找到复制账户的最⼩权限?

⾸先使⽤root账号登陆,收回复制账号repl_ur的所有权限:

mysql>lectur();

+----------------+

|ur()|

+----------------+

|root@localhost|

+----------------+

1rowint(0.00c)

mysql>revokeallon*.*fromrepl_ur;

QueryOK,0rowsaffected(0.01c)

mysql>flushprivileges;

QueryOK,0rowsaffected(0.00c)

其次使⽤repl_ur登陆:

mysql>showslavestatusG;

ERROR1227(42000):Accessdenied;youneed(atleastoneof)theSUPER,REPLICATIONCLIENTprivilege(s)forthis

operation

错误提⽰,⾄少需要SUPER和REPLICATIONCLIENT这两个权限之⼀。

(1)赋予REPLICATIONCLIENT权限给repl_ur

mysql>grantREPLICATIONCLIENTON*.*TOrepl_ur;

QueryOK,0rowsaffected(0.00c)

mysql>showslavestatusG;

******************************************************

Slave_IO_State:Connectingtomaster

Master_Host:192.168.6.100

Master_Ur:repl_ur

Master_Port:3306

Connect_Retry:60

......

showslavestatusG;状态查看正常,但是管理slave提⽰如下:

mysql>stopslave;

ERROR1045(28000):Accessdeniedforur'repl_ur'@'%'(usingpassword:YES)

(2)赋予REPLICATIONSLAVE权限给repl_ur:

mysql>grantREPLICATIONSLAVEON*.*TOrepl_ur;

QueryOK,0rowsaffected(0.00c)

mysql>stopslave;

ERROR1045(28000):Accessdeniedforur'repl_ur'@'%'(usingpassword:YES)

mysql>SELECTRepl_slave_priv,Repl_client_priv,super_EREUSER='repl_ur';

+-----------------+------------------+------------+

|Repl_slave_priv|Repl_client_priv|super_priv|

+-----------------+------------------+------------+

|Y|Y|N|

+-----------------+------------------+------------+

1rowint(0.00c)

(3)赋予SUPER权限给repl_ur:

mysql>grantSUPERON*.*TOrepl_ur;

QueryOK,0rowsaffected(0.00c)

mysql>stopslave;

QueryOK,0rowsaffected,1warning(0.00c)

mysql>startslave;

QueryOK,0rowsaffected,1warning(0.00c)

(4)赋予RELOAD权限给repl_ur

在没有RELOAD权限时提⽰如下错误:

mysql>retslave;

ERROR1227(42000):Accessdenied;youneed(atleastoneof)theRELOADprivilege(s)forthisoperation

mysql>grantreloadon*.*torepl_ur;

QueryOK,0rowsaffected(0.00c)

mysql>retslave;

QueryOK,0rowsaffected(0.00c)

最后,总结如下:

REPLICATIONCLIENT(客户端)、REPLICATIONSLAVE(服务端)、SUPER(管理)和RELOAD四个权限最好在创建⽤户时就赋予,以免造成不必

要的⿇烦,当然,要是主主配置,最好给予ALL权限。

上述只是在⼯作中的⼀点思考,希望看到这篇博⽂的博友给予指正。

本文发布于:2022-12-31 10:07:54,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/64784.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:分析器
下一篇:买便宜货
标签:priv
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图