zoukankan      html  css  js  c++  java
  • MYSQL用户管理及权限设置

    MySQL的整个访问控制包括两大块:用户管理模块、访问控制模块

    用户登录并不属于访问控制机制,而是用户身份识别和认证,认证包括主机名、用户名及密码

    用户管理模块的信息存储在系统表mysql.user中

    创建用户

    用户重命名

    更改密码

    删除用户(drop user '用户名'@'主机名')

    在更改密码,修改权限的时候,必须使用刷新命令flush privileges

    flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。

    MySQL授权

    权限可分为权限类型和权限对象,如用户u1可以查看数据库d1中的表t1的所有内容,权限类型就是select,权限对象就是表t1。

    基本格式:grant 权限类型 on 权限对象 to '用户名'@'主机名';

    权限级别:

      ①全局权限Global Privileges:管理权限,应用到服务器上的所有数据库上(全局权限保存在 mysql.user 表中)-----on *.*

      ②数据库权限Database Privileges:应用到某个特定数据库的所有对象上(数据库权限保存在 mysql.db 表中)-----on db_name.*

      ③表权限Table Privileges:应用到某个特定表的所有列上(表权限保存在 mysql.tables_priv 表中)-----on db_name.tbl_name

      ④列权限Column Privileges:应用到某个特定表的单个列上(列权限保存在 mysql.columns_priv 表中)-----在权限名称后面跟小括号,其中写上列名

      ⑤存储例程权限Stored Routine Privileges:应用到存储过程和函数上(存储例程权限保存在 mysql.procs_priv表中)

      ⑥代理用户权限Proxy User Privileges:使一个用户成为另一个用户的代理(代理用户权限保存在 mysql.proxies_priv表中)

    权限类型:

    1>.all/all privileges权限

      代表全局或者全数据库对象级别的所有权限。

    2>.alter权限

      代表允许修改表结构的权限,但必须要求有createinsert权限配合。如果是rename表名,则必须要求有alterdrop原表,createinsert新表的权限。

    3>.alter routine权限

      代表允许修改或者删除存储过程,函数的权限。

    4>.create权限

       create权限代表允许创建新的数据库和表的权限。

    5>.create routine权限

      代表允许创建存储过程,函数的权限。

    6>.create tablespace权限

       代表允许创建,修改,删除表空间和日志组的权限。

    7>.crate tempoary tables权限

       代表允许创建临时表的权限。

    8>.create user权限

      代表允许创建,修改,删除,重命名usrer的权限。

    9>.create view权限

       代表允许创建视图的权限。

    10>.delete权限

      代表允许删除行数据的权限。

    11>.drop权限

      代表允许删除数据库,表,视图的权限,包括truncate table命令。

    12>.event权限

      代表允许查询,创建,修改,删除mysql事件。

    13>.execute权限

      代表允许执行存储过程和函数的权限。

    14>.file权限

      代表允许在mysql可以访问的目录进行读写磁盘文件操作,可使用的命令包括load data infileselect ... into outfileload file()函数。

    15>.grant option权限

      代表是否允许此用户授权或者收回其他用户你给予的权限。

    16>.index权限

      代表是否允许创建和删除索引。

    17>.insert权限

      代表是否允许在表里插入数据,同时在执行analyze tableoptimize tablerepair table语句的时候也需要insert权限。

    18>.lock权限

      代表允许对拥有select权限的表进行锁定,以防止其他链接对此表的读或写。

    19>.process权限

      代表允许查看mysql中的进程信息,比如执行show processlist,mysqladmin processlist(命令行),show engines等命令。

    20>.reference权限

      是在5.7.6版本之后引入,代表是否允许创建外键。

    21>.reload权限

      代表允许执行flush命令,指明重新家在权限表到系统内存中,refresh命令代表关闭和重新开启日志文件并刷新所有到表。

    22>.replication client权限

      代表允许执行show master statusshow slave status,show binary logs命令。

    23>.replication slave权限

      代表允许slave主机通过此用户连接master以便建立主从复制关系。

    24>.select权限

      代表允许从表中查看数据,某些不查询表数据的select执行则不需要此权限,如select 1+1select pi() +5 等等;而且select权限在执行updata/delete语句中含有where条件的情况下也是需要的。

    25>.show databases权限

      代表通过执行show databases名称查看所有的数据库名。

    26>.show view权限

      代表通过执行show create view命令查看视图创建的语句。

    27>.shutdown权限

      代表允许关闭数据库实例,执行语句包括mysqladmin shutdown

    28>.super权限

      代表允许执行一系列数据库管理命令,包括kill强制关闭某个连接命令,change master to 创建复制关系命令,以及crete/alter/drop server等命令。

    29>.trigger权限

      代表允许创建,删除,执行,现实触发器等权限。

    30>.upadte权限

      代表允许修改表中等数据等权限。

    31>.usage权限

      它是创建一个用户之后等默认权限,其本身代表连接登陆权限。

     废除权限

    格式:revoke 权限类型 on 权限对象 from '用户名'@'主机名';

     查看权限

    格式:show grants for '用户名'@'主机名';

     

  • 相关阅读:
    poj 3528 (三维几何求凸包+凸包表面积)
    dijkstra模板(好像是斐波那契额堆优化,但我为什么看起来像优先队列优化,和spfa一样)
    最大空凸包模板
    ICPC 2017–2018, NEERC, Northern Subregional Contest St Petersburg, November 4, 2017 I题
    hdu 5248 序列变换
    hdu 2063(二分图模板测试)
    组合数
    85. Maximal Rectangle 由1拼出的最大矩形
    750. Number Of Corner Rectangles四周是点的矩形个数
    801. Minimum Swaps To Make Sequences Increasing 为使两个数组严格递增,所需要的最小交换次数
  • 原文地址:https://www.cnblogs.com/1016391912pm/p/11712133.html
Copyright © 2011-2022 走看看