• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mysql学习之权限管理图文代码实例

mysql学习之权限管理图文代码实例

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了mysql,权限管理等相关知识,希望本文的分享对您有所帮助
数据库权限的意义:

  为了保证数据库中的业务数据不被非授权的用户非法窃取,需要对数据库的访问者进行各种限制,而数据库安全性控制措施主要有这三种,第一种用户身份鉴别,手段可以是口令,磁卡,指纹等技术,只有拥有合法身份的人才可以进入数据库。第二种存取权限控制,不同角色,对数据库的存取权限是不同的,必须为每一个角色设置其访问的数据库对象、权限。第三种制定数据库管理的管理制度,制度最终约束人的行为,通过制定相应的规章制度,可以保证在合适的时间、由合适的人对数据进行合适的操作。

mysql对用户权限的检查分为两个阶段

1、是否可以与mysql服务器建立链接

2、是否具有某些操作权限(如:select update 等)

一、与mysql服务器建立链接

mysql服务器如何校验用户是否可以建立链接

1、验证你从哪来 host

2、你是谁 user

3、密码 password

链接mysql的方式:C:\Users\PC003>mysql -h192.168.6.223 -uroot -pjalja

参数解释:-h:从何处要建立链接

     -u:user

     -p:密码

mysql> select user,host,password from user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *CFAFE434FB0E5D64538901E668E1EACD077A54DF |
| root | %         | *CFAFE434FB0E5D64538901E668E1EACD077A54DF |
+------+-----------+-------------------------------------------+

host=localhost表示可以使用默认主机进行链接(C:\Users\PC003>mysql -uroot -pjalja,C:\Users\PC003>mysql -hlocalhost -uroot -pjalja,C:\Users\PC003>mysql -h127.0.0.1 -uroot -pjalja)
host=%表示该服务器可以与它所在一个局域网(公网)内的所有主机建立链接,该方式在生产环境中不安全

host=192.168.6.224表示该服务器只能与192.168.6.224主机建立链接 C:\Users\PC003>mysql -h192.168.6.223 -uroot -pjalja

如何修改host:

mysql> update user set host='192.168.6.223' where user ='root'

mysql> flush privileges;刷新权限(因为修改后数据是在内存中每次操作用户权限相关操作都要进行刷新)

修改密码:

mysql> update user set password=password('111111') where user='root';
mysql> flush privileges;

二、mysql如何进行权限检查

mysql中有一个mysql库该库下user表检查该用户是否存在,db表检查该用户对哪些库有哪些操作权限,tables_priv表检查该用户对那些表有哪些操作权限。

创建用户并授权:

grant [权限1,权限2] on *.* to user@'host' identfied by 'password';

常用权限:all,create,drop,insert,delete,update,select

例如:授予ls用户所有库所有表的所有权限并可以从该局域网该网段任何主机登陆。

mysql> grant all on *.* to 'ls'@'192.168.6.%' identified by '111111';

使用该用户登陆:C:\Users\PC003>mysql -h192.168.6.223 -uls -p111111;

查看ls用户具体有哪些权限:


mysql> select * from  mysql.user where user='ls' \G;
*************************** 1. row ***************************
                  Host: 192.168.6.%
                  User: ls
              Password: *FD571203974BA9AFE270FE62151AE967ECA5E0AA
           Select_priv: Y
           Insert_priv: Y
           Update_priv: Y
           Delete_priv: Y
           Create_priv: Y
             Drop_priv: Y
           Reload_priv: Y
         Shutdown_priv: Y
          Process_priv: Y
             File_priv: Y
            Grant_priv: N
       References_priv: Y
            Index_priv: Y
            Alter_priv: Y
          Show_db_priv: Y
            Super_priv: Y
 Create_tmp_table_priv: Y
      Lock_tables_priv: Y
          Execute_priv: Y
       Repl_slave_priv: Y
      Repl_client_priv: Y
      Create_view_priv: Y
        Show_view_priv: Y
   Create_routine_priv: Y
    Alter_routine_priv: Y
      Create_user_priv: Y
            Event_priv: Y
          Trigger_priv: Y
Create_tablespace_priv: Y
              ssl_type:
            ssl_cipher:
           x509_issuer:
          x509_subject:
         max_questions: 0
           max_updates: 0
       max_connections: 0
  max_user_connections: 0
                plugin:
 authentication_string: NULL


权限回收:收回ls的所有权限

mysql> revoke all on *.* from ls@'192.168.6.%';

授权某个库的权限:

mysql> grant all on blog.* to ls@'192.168.6.%';授予ls用户拥有blog数据库的所有权限。

这样ls用户在user表中没有权限,这时将进行db级别的权限检查

mysql> select * from  mysql.db where user='ls' \G;
*************************** 1. row ***************************
                 Host: 192.168.6.%
                   Db: blog                 
                   User: ls
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
           Grant_priv: N
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
     Create_view_priv: Y
       Show_view_priv: Y
  Create_routine_priv: Y
   Alter_routine_priv: Y
         Execute_priv: Y
           Event_priv: Y
         Trigger_priv: Y

回收ls用户所有权限并赋予某各表权限:授予ls用户blog库中user表crud权限

mysql> revoke all on *.* from ls@'192.168.6.%';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> grant insert,update,select,delete on blog.user to ls@'192.168.6.%';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

这样ls用户在db级别中没有权限,这时将进行tables_priv级别的权限检查:

mysql> select * from  mysql.tables_priv where user='ls' \G;
*************************** 1. row ***************************
       Host: 192.168.6.%
         Db: blog       User: ls
 Table_name: user
    Grantor: root@localhost
  Timestamp: 2017-02-09 14:35:38
 Table_priv: Select,Insert,Update,DeleteColumn_priv:1 row in set (0.00 sec)


mysql权限控制流程:

注意:mysql的权限检查可以精确到某列数据。

以上就是 mysql学习之权限管理图文代码实例的内容,更多相关内容请关注微课江湖()!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享下mysql各个主要版本之间的差异
  • MySQL essential版本和普通版本有什么区别?
  • redhat 5.4下安装MYSQL全过程
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 5个常用的MySQL数据库管理工具详细介绍
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • 解析远程连接管理其他机器上的MYSQL数据库
  • mysql 精简过程(删除一些文件)

相关文章

  • 2017-05-11简单讲解MySQL中的多源复制
  • 2018-12-05SQL的小常识, 备忘之用, 慢慢补充.
  • 2017-05-11Debian 6.02 (squeeze)下编译安装 MySQL 5.5的方法
  • 2018-12-05PostgreSQL的generate_series函数应用例子
  • 2018-12-05双机HA函数定义与用法汇总
  • 2018-12-05MySQL常见SQL语句使用方法总结
  • 2018-12-05高性能MySQL-存储引擎MyISAM与InnoDB基本区别介绍
  • 2018-12-05安装MySQL 5后无法启动(不能Start service)解决方法小结
  • 2018-12-05SQL SERVER 数据类型详解补充2
  • 2017-05-11MySQL 自定义函数CREATE FUNCTION示例

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • mysql-prepareStatement 执行mySql语句中文乱码
    • Oracle 9i 数据库异常关闭后的启动
    • SQL Server 7.0 入门(五)
    • mysql grants小记
    • CentOS 7下安装与配置MySQL 5.7教程详解
    • MySQL服务维护笔记第1/2页
    • mysql SELECT FOR UPDATE语句使用示例
    • mysql重置密码
    • mysql日期和时间
    • 实例详解mysql中innodb_autoinc_lock_mode

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有