1.mysql关于权限的介绍:
(1)DDL: create、drop、alert、truncate
(2)DML: insert、update、delete、select
(3)DCL: grant、revoke
(4)TCL: commit、rollback
2.用户权限管理的作用:
(1)限制用户访问哪些库/表
(2)限制用户对哪些表执行select、create、delete、drop、alert等操作
(3)限制用户登陆自己的IP 或者域名
(4)限制用户自己是否有权限授权给别的用户
3.mysql存储权限的表,分别为user、db、tables_priv、columns_priv、procs_priv
(1)mysql.user 记录某个用户权限表
(2)mysql.db 存取用户对某个数据库的操作权限,决定用户能从哪个主机访问哪个DB。
(3)mysql.tables_priv 用来对表设置操作权限
(4)mysql.columns_priv 用来对表的某一列设置操作权限
(5)mysql.procs_priv 用来对存储过程和存储函数设置操作权限
4.mysql 赋予用户权限语法讲解:
grant all privileges on *.* to 'admin'@'%';
grant all privileges on *.* to 'admin'@'192.%.%.%' identified by '123456';
grant all privileges on *.* to 'admin'@'192.168.%.%'
identified by '123456' with grant option;
flush privileges;
on 库名.表名 保存--> mysql.tables_priv
on 库名.表名.列名 保存--> mysql.columns_priv
on 库名.存储过程/函数 保存--> mysql.procs_priv
# all privileges : 表示所有操作的权限
# identified by : 如果没有用户,通过grant + identified 语句创建用户 (官方不建议)
# with grant option : 表示用户身上all privileges 的权限可以授予给其他用户
5.可授予的权限
--------------------------------------------------------------------------------------------------------------------------------------------
ALL [PRIVILEGES] 在指定的访问级别授予除“授予选项”和“代理”之外的所有权限。
ALTER 启用更改表的使用。水平: 全局、数据库、表。
ALTER ROUTINE 允许更改或删除存储的例程。级别:全球, 数据库,例程。
CREATE 启用数据库和表创建。级别:全局、数据库、表。
CREATE ROUTINE 启用存储例程创建。级别:全局、数据库。
CREATE TABLESPACE 允许创建、更改表空间和日志文件组,或 下降。级别:全球。
CREATE TEMPORARY TABLES 启用“创建”的使用 临时表。级别:全局、数据库。
CREATE USER 启用“创建用户”、“删除用户”、“重命名用户”和“全部撤销”的使用 特权。级别:全球。
CREATE VIEW 允许创建或更改视图。级别:全局、数据库、表。
DELETE 启用删除的使用。级别: 全球, 数据库,表。
DROP 启用要删除的数据库、表和视图。级别:全球, 数据库,表。
EVENT 启用事件计划程序的事件使用。级别:全局、数据库。
EXECUTE 使用户能够执行存储的例程。级别:全局、数据库、 常规。
FILE 使用户能够使服务器读取或写入文件。水平: 全球。
GRANT OPTION 启用要向其他帐户授予或从中删除的权限。 级别:全局、数据库、表、例程、代理。
INDEX 启用要创建或删除的索引。级别:全局、数据库、 桌子。
INSERT 启用插入的使用。级别:全球, 数据库、表、列。
LOCK TABLES 允许在表上使用锁定表 您具有选择权限。级别:全局、数据库。
PROCESS 使用户能够使用 SHOW 查看所有进程 进程列表。级别:全球。
PROXY 启用用户代理。级别:从用户到用户。
REFERENCES 启用外键创建。级别:全局、数据库、表、列。
RELOAD 启用刷新操作的使用。水平: 全球。
REPLICATION CLIENT 使用户能够询问源服务器或副本服务器的位置。水平: 全球。
REPLICATION SLAVE 使副本能够从源读取二进制日志事件。水平: 全球。
SELECT 启用选择的使用。级别:全球, 数据库、表、列。
SHOW DATABASES 启用“显示数据库”以显示全部 数据库。级别:全球。
SHOW VIEW 启用“显示创建视图”的使用。水平: 全局、数据库、表。
SHUTDOWN 启用 mysqladmin 关闭的使用。级别:全球。
SUPER 启用其他管理操作,如将主服务器更改为、终止、清除二进制日志、设置 GLOBAL和mysqladmin 调试命令。级别:全球。
TRIGGER 启用触发器操作。级别:全局、数据库、表。
UPDATE 启用使用更新。级别:全球, 数据库、表、列。
USAGE “没有特权”的同义词
---------------------------------------------------------------------------------------------------------------------------------------------
6.mysql 赋予用户授权案例:
create user 'dba'@'%' identified by '123456';
授权针对 数据库
grant insert,delete,update on yzjtestdb.* to 'dba'@'%';
授权针对 表
grant create,alter,drop on yzjtestdb.yzjtest_m5 to 'dba'@'%';
授权针对 表的列
grant select(id,name) on yzjtestdb.yzjtest_m5 to 'dba'@'%';
flush privileges;
7.权限回收语法和案例:
权限回收语法
REVOKE INSERT ON *.* FROM 'jeffrey'@'localhost';
权限回收案例
REVOKE select on yzjtestdb.yzjtest_m5 FROM 'dba'@'%';
REVOKE create,alter,drop on yzjtestdb.yzjtest_m5 FROM 'dba'@'%';
REVOKE insert,delete,update on yzjtestdb.* FROM 'dba'@'%';
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。