MYSQL权限管理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MYSQL权限管理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3754字,纯文字阅读大概需要6分钟。
内容图文
我叫张贺,贪财好色。一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛学和跑步。
个人博客:传送阵
笔者微信:zhanghe15069028807
MYSQL
运行时,应该遵循以下准则:
- 不要给开发配置超级用户权限
- 不要在数据库当中存储明文密码
- 不要用不满足复杂性要求的密码
- 不允许非信任主机的扫描(需安全设备配合)
1、用户账户管理
1.登录和退出 MySQL , 使? mysql -u root -p 可以连接数据库, 但这只是本地连接数据库的?式,
在?产很多情况下都是连接?络中某?个主机上的数据库
-P //指定连接远程数据库端?[默认3306]
-h //指定连接远程数据库地址[默认localhost]
-u //指定连接远程数据库账户[默认root]
-p //指定连接远程数据库密码[默认密码为空]
-e //执?mysql数据库sql指令,非交互操作
上面几个选项最后一个-e
我们会经常在脚本里面使用,举个例子:
mysql -u root -p'abc-123' -e "show databases;" | sed 1d | egrep -v 'information_schema|mysql|test|performance_schema'
bgx
bgx_edu
2、创建用户
//先用create创建用户,然后再用grant进行授权
create user zhanghe@'localhost' identified by 'cba-123';
grant all on *.* to zhanghe@'localhost';
//创建用户和授权可以放到一起
grant all on *.* to zhangjia@'localhost' identified by 'cba-123';
3、删除用户
//用`drop user`删除
drop user zhanghe@'localhost';
//delete语句删除
delete from mysql.user where user='zhangjia';
4、修改root用户密码
//用shell方式修改
mysqladmin -uroot -p'abc-123' password 'cba-123';
//用updata直接修改数据表,别忘记刷新
update mysql.user set password=password("cba-123") where user='root' and host='localhost';
//在当前用户下直接修改密码
set password=password("cba-123");
5、修改其它用户密码
//用`set password`指令修改
create user zhangsan@'localhost' identified by 'cba-123';
set password for zhangsan@'localhost'=password('NEW-passwd');
//用`updata`直接修改`mysql.user`表,别忘记刷新
update mysql.user set password=password("cba-123") where user='zhangsan' and host='localhost';
2、访问权限管理
1、权限表
mysql.user全局授权
mysql.db数据库级
mysql.tables_priv表级别
mysql.columns_priv列级
权限应用顺序:user>db>tables>columns
3、例子
//例一、下面这个是全局级别的授权
grant ALL ON *.* to zhanghe@'%' identified by 'cba-123';
select * from mysql.user\G #通过此条命令可以看到权限
//例二、全局级别,只不过比例一多一个`GRANT`权限而已。
grant ALL ON *.* to zhanghe@'%' identified by 'cba-123' with grant option;
//例三:库级别
rant ALL on bgx.* to admin02@'%' identified by 'cba-123';
select * from mysql.user\G #通过这个表发现admin02没有任何权限,因为根本没有存放在此
select * from mysql.db; #在这
//例四:表级别
grant ALL on bgx.t5 to admin01@'%' identified by 'cba-123';
select * from mysql.tables_priv\G
//例五,列级别
grant select(id),insert(name) on bgx.t5 to lisi@'%' identified by 'cba-123';
select * from columns_priv\G
3、访问权限回收
1、查看用户的权限
//查看root用户的权限
MariaDB [mysql]> show grants;
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*D1BE934B99C7CFFE2843BDE71DB34BBB0894B2DD' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------------+
//查看其它用户的权限
MariaDB [mysql]> show grants for lisi@'%';
+-----------------------------------------------------------------------------------------------------+
| Grants for lisi@% |
+-----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'lisi'@'%' IDENTIFIED BY PASSWORD '*D1BE934B99C7CFFE2843BDE71DB34BBB0894B2DD' |
| GRANT SELECT (id), INSERT (name) ON `bgx`.`t5` TO 'lisi'@'%' |
+-----------------------------------------------------------------------------------------------------+
2、权限回收
//回收用户的DELETE权限
revoke DELETE on *.* from zhanghe@'%';
//回收用户所有的权限
revoke ALL on *.* from zhanghe@'%';
//回收grant权限
revoke GRANT OPTION on *.* from zhanghe@'%';
原文:https://www.cnblogs.com/yizhangheka/p/11906788.html
内容总结
以上是互联网集市为您收集整理的MYSQL权限管理全部内容,希望文章能够帮你解决MYSQL权限管理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。