ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 数据库 >> MySql >> MySQL知识(二十一)——用户管理之权限管理、访问控制

MySQL知识(二十一)——用户管理之权限管理、访问控制(1/2)

来源:网络整理     时间:2016-02-29     关键词:

本篇文章主要介绍了"MySQL知识(二十一)——用户管理之权限管理、访问控制",主要涉及到方面的内容,对于MySql感兴趣的同学可以参考一下: 1 权限管理  权限管理主要是对登录到MySQL的用户进行权限验证。所有用户的权限都存储在MySQL的权限表中,不合理的权限规划会给MySQL服务器带来安全隐患...

1 权限管理

  权限管理主要是对登录到MySQL的用户进行权限验证。所有用户的权限都存储在MySQL的权限表中,不合理的权限规划会给MySQL服务器带来安全隐患。
  MySQL权限系统的主要功能是证实连接到一台给定主机的用户,并且赋予该用户在数据库上的SELECT、INSERT、UPDATE和DELETE权限。

1.1 MySQL的各种权限

  账户权限信息被存储在MySQL数据库的user、db、host、tables_priv、column_priv和procs_priv表中。MySQL启动时,服务器将这些数据库表中的权限信息的内容读入内存。
  GRANT和REVOKE语句所涉及的权限的名称如下:
MySQL知识(二十一)——用户管理之权限管理、访问控制
MySQL知识(二十一)——用户管理之权限管理、访问控制
  (1)CREATE和DROP权限,可以创建新数据库和表,或删除已有数据库和表。
  (2)SELECT、INSERT、UPDATE和DELETE权限,允许在数据库表上进行操作
  (3)INDEX权限允许创建或删除索引
  (4)ALTER,允许更改表的结构和重命名表
  (5)CREATE ROUTINE,创建保存函数和程序
  (6)GRANT,允许授权给其他用户
  (7)FILE权限,允许用户能读或写MySQL服务器上的任何文件。

1.2 授权

  授权就是为某个用户授予权限。授予的权限可以分为多个层级:
  (1)全局层级
  适用于一个给定服务器中的所有数据库,权限存储在mysql.user表中,例如GRANT ALL ON *.*和REVOKE ALL ON *.*
  (2)数据库层级
  …一个给定数据库中的所有目标。…mysql.db和mysql.host表…,GRANT ALL ON db_name.和REVOKE ALL ON db_name.
  (3)表层级
  …给定表中的所有列。…mysql.table_priv表。GRANT ALL ON db_name.tbl_name 和REVOKE ALL ON db_name.tbl_name…
  (4)列层级
  …一个给定表中的单一列。…mysql.columns_priv表。
  (5)子程序层级
  …

例子:使用GRANT语句创建一个新的用户grantUser,密码为‘grantpwd’。用户grantUser对所有的数据有查询、插入权限。并授于GRANT权限

GRANTSELECT,INSERTON *.* TO'grantUser'@'localhost'IDENTIFIED BY'grantpwd'WITHGRANTOPTION;

1.3 收回权限

  收回权限就是取消已经赋予用户的某些权限。MySQL中使用REVOKE语句取消用户的某系权限。
  (1)收回用户所有权限

REVOKE ALL PRIVILEGES,GRANTOPTIONFROM'user'@'host'[,'user'@'host'...]

  (2)收回用户指定权限

相关图片

相关文章