时间:2021-07-01 10:21:17 帮助过:2人阅读
如果是普通用户一般都是给一些基本的增删改查的权限就够了,平时管理一般就用以下权限:
mysql> SELECT DISTINCT CONCAT(‘User: ‘‘‘,user,‘‘‘@‘‘‘,host,‘‘‘;‘) AS query FROM mysql.user; #查所有用户,授予哪个主机的权限,CONCAT整理下查看时会比较清晰直观 mysql> show grants for ‘root‘@‘127.0.0.1‘; #用于查看用名对应主机下的权限 mysql> grant all *.* to ‘test‘@‘127.0.0.1‘ identified by "youpasswd"; #授予test在127.0.0.1下所有库的所有权限登录密码youpasswd,这个如果这个用户没有被创建会隐式 creat用户,这里要注意的是普通用户给这个权限肯定不行,权限太高,比如当前库下有一个daemon库, 给test基本权限,如 CREATE USER ‘test‘@‘127.0.0.1‘ IDENTIFIED BY "youpasswd"; GRANT SELECT, INSERT, UPDATE, DELETE ON `daemon`.* TO ‘test‘@‘127.0.0.1‘; #在这里可以creat创建后再限定权限,当然也可以写 GRANT SELECT, INSERT, UPDATE, DELETE ON `daemon`.* TO ‘test‘@‘127.0.0.1‘ IDENTIFIED BY "youpasswd"; #当然这里都是给固定主机的权限,也可以给某个地址段,如10.0.%,或者是任意ip即%,当然在实际生产环境 中这样是不允许的 REVOKE INSERT ON `daemon`.* FROM ‘test‘@‘127.0.0.1‘; #移除权限 drop user test@127.0.0.1; #删除用户 #以上的的操作都会隐式FLUSH PRIVILEGES刷新授权表 UPDATE user SET Password = PASSWORD(‘newpasswd‘) WHERE user = ‘test‘; FLUSH PRIVILEGES; #利用update跟新test密码,需要FLUSH PRIVILEGES刷新授权表 select password(‘newpasswd‘); #生成依赖于mysql的哈希加密的密码,多用于程序内部使用mysql给权限时使用
基本,在平时管理mysql用户权限里大概使用的就是这么多,还有要注意的是在给主机权限的时候要注意2点:能使用内网就一定要内网;要尽量避免使用用域名,能用ip就用ip,以免mysql中DNS反解析,可以在启动时使用
/usr/local/mysql/bin/mysqld_safe --skip-name-resolve --user=mysql& 添加--skip-name-resolve参数,当然最好是在my.cnf或者是my.ini中加skip-name-resolve参数
本文出自 “技术随笔” 博客,谢绝转载!
mysql用户权限管理
标签:mysql 权限