linux管理mysql权限_Linux运维 第四阶段 (五) MySQL用户和权限管理

Linux运维 第四阶段 (四)MySQL用户和权限管理

1、相关概念:

》mysql用户:

类似VSFTPD虚拟用户;

密码,自己独有的加密机制,PASSWORD函数;

用户名@主机;

用户名16字符以内,主机(主机名、IP、网络地址、通配符(%,_);

--skip-name-resolve(跳过名称解析,可提高用户连接速度)

账号是用来认证的;

>RENAME USER  ‘old_name’@’host’  TO  ‘new_name’@’host;  (重命名用户)

》权限,授权后才能访问表(数据);

mysql自身库中的表:user,db,host,tables_priv,columns_priv,procs_priv:

user:user account,global privileges and other non-privileges column; 全局级别(SUPER,REPLICATION SLAVE,SHUTDOWN)

db:database-levelprivileges 库级权限

host:obsolete  已废弃

tables-priv:table-level privileges  表级权限(DELETE,ALTER,TRIGGER,SELECT,INSERT,UPDATE)

columns_priv:column-level privileges  列级别权限(SELECT,INSERT,UPDATE)

procs_priv:stored procedure andfunction privileges  存储过程和存储函数权限

proxies_priv:proxy-user privileges  代理用户权限

mysql在启动时会读取这六张表,并在内存中生成授权表,且每执行一个SQL语句都要检查是否有权限读取或写入;

2、>SELECT  * FROM  db\G

>CREATE TEMPORARY  TABLE  tb_name; (临时表——内存表);

USAGE (仅用作连接mysql-server和一些简单命令的使用)

触发器trigger:主动数据库(在执行某些操作时,触发已定义好的语句,如日志记录)

>HELP CREATE  USER  (创建用户)

>CREATE USER  ‘username’@’host’  [IDENTIFIED BY  ‘new_pw’];

>FLUSH PRIVILEGES;

>HELP GRANT  (给用户授权)

>GRANT  privileges1,privileges2  ON  [object_type]  db_name.tb_name  TO ‘username’@’host’ [IDENTIFIED BY ‘new_pw’]  [REQUIRE NONE|ssl_option]  [WITH with_option];

注:db_name.tb_name(priv_level):

*

*.*

db_name.*

db_name.tb_name

tb_name

db_name.routine_name

with_option:

GRANT_OPTION  用户可将自己已有权限授权给其它用户,非常危险,不建议使用

|MAX_QUERIES_PER_HOUR count  每小时最多查询数

|MAX_UPDATES_PER_HOUR count  第小时最多更新多少条

|MAX_CONNECTIONS_PER_HOUR count  每小时可最多连接失败多少次

|MAX_USER_CONNECTIONS count  同一个用户账号共连进多少次

例:>GRANT  EXECUTE  ON FUNCTION  db.abc  TO [email protected]’%’;  (当无法判断tb_name是什么对象时使用此项object_type,此例明确说明abc是函数,tb_name不一定都是表,也会是存储过程PROCEDURE和存储函数FUNCTION)

>GRANT UPDATE  ON  jiaowu.tutors TO  ‘username’@’%’  REQUIRE SSL;  (连接时必须要以SSL建立安全连接,还可以以X509方式)

>GRANT UPDATE(Age) ON jiaowu,stu TO ‘username’@’host’;  (仅授权某字段)

>GRANT SUPER ON *.* TO ‘username’@’host’;  (SUPER与WITH GRANTOPTION两项要慎重授权)

>SHOW GRANTS FOR ‘username’@’host’;  (查看某用户权限,字段授权与库、表授权不在同一行)

>HELP REVOKE

>REVOKE priv1,priv2  ON  db_name.tb_name  FROM  ‘user’@’host’;

3、重新找回管理员密码:

#service mysqld  stop

#vim /etc/rc.d/init.d/mysqld

$bindir/mysqld_safe  --skip-grant-tables  --skip-networking   --datadir="$datadir"--pid-file="$mysqld_pid……(添加--skip-grant-tables跳过授权表和--skip-networking禁止连接网络)

#service mysqld  start

#mysql

>UPDATE mysql.user  SET  PASSWORD=PASSWORD(‘new_password’)  WHERE User=’root’;

(仅能通过手动更改user表中内容,不能用SET及mysqladmin更改密码,因为授权表已跳过)

#service mysqld  stop(停止服务将/etc/rc.d/init.d/mysqld改回原来状态,重启服务即可)。

本篇是学习《马哥网络视频》做的笔记。

本文出自 “Linux运维重难点学习笔记” 博客,谢绝转载!

原文:http://jowin.blog.51cto.com/10090021/1683615

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值