zoukankan      html  css  js  c++  java
  • mysql 授权管理

    本文从创建一个数据库说起:

    1,创建一个数据库

     CREATE  DATABASE IF NOT EXISTS you_dbname DEFAULT CHARSET utf8 CALLATE utf8_general_ci;

    2,访问控制介绍:

    MySQL 服务器的安全基础是:用户应该对他们需要的数据具有适当的访问权限,既不能多也不能少。换句话说,用户不能对过多的数据具有过多的访问权限。

    需要考虑的有以下内容:

      多数用户需要对表进行读写,但少数用户甚至需要创建和删除表;

      默写用户需要毒镖,但可能不需要更新表;

      你可能向允许用户添加数据,但不允许他们删除数据;

      某些用户(管理员)可能需要处理用户账号的权限,但多数用户不需要;

      你可能像根据用户的登录地点限制对某些功能的访问;

    MySQL 的用户信息存储在MySQL的mysql 数据库中

    可以通过   以下2个命令来查看所有的用户

       use mysql;

      select user from user;

     创建新用户:

     CREATE USER  username IDENTIFIED BY 'PASSWD';(为安全起见,一般不建议直接这样操作用户表)[注1]

     重新命名一个用户账号

     RENAME USER newname TO oldname;

     删除用户账号

     DROP USER username; //删除用户的账号以及相关的权限,如果使用MySQL5 以前的版本,则不能删除相关权限需要先用revoke 删除账号相关的权限,然后执行该条命令即可。

    设置访问权限

     创建用户账号之后,必须分配权限访问。否则,新用户无法使用数据库

     a, 查看用户的权限

      show GRANTS FOR username

     b,授权三要素

      要授予的权限,被授予权限的数据库和表,用户名

     用法实例:

       GRANT select ON dbname.* To username;

     授权所有用户名为username 的用户查询数据库dbname  下的所有表的权限。

     GRANT 的反操作为

      REVOKE SELECT ON dbname.* FROM username;

     GRANT 和REVOKE 可在以下几个层次上控制访问权限:

      整个服务器,使用GRANT ALL和REVOKE ALL;

      整个数据库,使用ON database.*;

     特定的表 ,使用 ON database.table;

      特定的列;

     特定的存储过程;

     权限列表:

    用户授权完成之后并不是立即生效,需要通过执行:

     flush privileges;

     注1:

      通常采用用户创建和授权同时进行,命令如下

      

         GRANT (权限列表) ON db.table TO username@HOSTNAME  IDENTIFIDE BY 'PASSWD';

       插图和部分内容摘自:《MySQL必知必会》 文章系读书笔记系列。

  • 相关阅读:
    将数据写入Word模版,生成PDF并加水印
    JSPDF 中文乱码
    DataTable 计算列
    ZIP压缩类
    统一社会信用代码验证
    avalon SVG 画流程图
    横线
    验证身份证合法性
    Centos7.3安装Mysql8.0
    MVC全局验证登陆信息
  • 原文地址:https://www.cnblogs.com/minbbp/p/3672985.html
Copyright © 2011-2022 走看看