您现在的位置是:群英 > 数据库 > MySQL数据库
MySQL数据库权限怎样进行分配和回收?
Admin发表于 2021-11-19 18:04:341369 次浏览

    这篇文章主要给大家分享MySQL数据库权限分配和回收的操作,下文的SQL语句具有一定的借鉴价值,感兴趣的朋友可以参考一下,希望大家阅读完这篇文章能有所收获,下面我们一起来学习一下吧。

数据库权限

    数据库权限主要是以用户可以允许执行的SQL语句来划分,SQL语言可以分为四类操作:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。

    非技术人员通常只能使用DQL语句,这也是权限最低的SQL操作。数据查询语言的基本结构是由SELECT子句、FROM子句WHERE子句构成。

    SELECT <字段名表> FROM <表或视图名> WHERE <查询条件>

    现在很多数据分析人员,都可以熟练使用SQL语言进行自定义查询,不再需要技术人员开发报表功能。

开发人员的权限管理

    对于一般开发人员的权限分配,除了DQL以外,还有DML,也就是要满足增删改查(CRUD)的需求。

    以下语句就是分别为普通开发人员 zhangsan 分配 MySQL 数据库的增删改查权限,delete操作要慎重分配。

grant select on testdb.* to zhangsan@’%’
grant insert on testdb.* to zhangsan@’%’
grant update on testdb.* to zhangsan@’%’
grant delete on testdb.* to zhangsan@' %’

    对于高级开发人员的权限分配,主要需要数据定义语言DDL,利用DDL语句来创建数据库中的各种对象-----表(Table)、视图(View)、索引(Index)等。这种操作通常需要由有经验的开发人员来完成。

以下语句实现了通过 grant 语句来分配创建、修改和删除 MySQL 数据表结构的权限。

grant create on testdb.* to lisi@’192.168.0.%’;
grant alter on testdb.* to lisi@’192.168.0.%’;
grant drop on testdb.* to lisi@’192.168.0.%’;

    分配创建 MySQL 外键权限。

grant references on testdb.* to lisi@’192.168.0.%’;

    分配创建 MySQL 临时表权限。

grant create temporary tables on testdb.* to lisi@’192.168.0.%’;

    分配创建 MySQL 索引权限。

grant index on testdb.* to lisi@’192.168.0.%’;

    分配创建 MySQL 视图、查看视图源代码权限。

grant create view on testdb.* to lisi@’192.168.0.%’;
grant show view on testdb.* to lisi@’192.168.0.%’;

    分配创建 MySQL 存储过程、函数权限。

grant create routine on testdb.* to lisi@’192.168.0.%’; — now, can show procedure status
grant alter routine on testdb.* to lisi@’192.168.0.%’; — now, you can drop a procedure
grant execute on testdb.* to lisi@’192.168.0.%’;

更高权限的分配

    数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等,通常这种特殊权限会分配给DBA使用。如:

  • GRANT:授权。
  • ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。回滚命令使数据库状态回到上次最后提交的状态。
  • COMMIT [WORK]:提交。

    以下语句将testdb的所有权限都分配给dba账户

grant all privileges on testdb to dba@’localhost’

    其中,关键字 “privileges” 可以省略。

    以下语句更厉害,将使得高级 DBA 获得管理 MySQL 中所有数据库的权限。

grant all on *.* to dba@’localhost’

权限的撤销

    使用revoke语句可以撤销已经赋予给my MySQL 用户权限的权限。revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:

grant all on *.* to dba@localhost;
revoke all on *.* from dba@localhost;

    在使用grant 或 revoke语句分配或撤销权限后,该用户只有重新连接 MySQL 数据库,新的权限才能生效。

总结

    在数据库权限分配和管理中,应当严格区分账户的用途,并按照最小可用原则分配对应的权限。当账户不再使用以后,应当立即收回权限。

    关于MySQL数据库权限分配和回收的操作就介绍到这,有需要的朋友可以了解看看,希望能对大家有帮助,想要了解更多MySQL数据库权限的内容,大家可以关注其它的相关文章。

文本转载自网络

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

相关信息推荐
2022-10-24 09:34:59 
摘要:3种方法:1、删除所有日志,语法“RESET MASTER;”,删除后将会重新开始创建新的二进制日志;2、根据编号删除日志,语法“PURGE MASTER LOGS TO '文件名.number';”,将删除编号小于指定“number'”的所有二进制日志;3、根据创建时间删除日志,语法“PURGE MASTER LOGS TO 'yyyy-mm-dd hh:MM:ss';”。
2022-10-18 17:52:41 
摘要:本篇文章给大家带来了关于mysql的相关知识,触发器是SQLserver提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,事件是在 MySQL 5.1后引入的,有点类似操作系统的计划任务,但是周期性任务是内置在MySQL服务端执行的,下面一起来看一下,希望对大家有帮助。
2022-08-13 17:52:24 
摘要:修改方法:1、使用“alter table 表名 comment '注释内容';”语句,可修改表的注释;2、用“alter table 表名 modify column 字段名 类型 comment '注释内容';”语句,可修改字段的注释。
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部