网站首页 > 编程文章 正文
用户权限控制,每一个DBA都要会。
例如:我们需要给予开发人员什么权限?给予领导什么权限?给予自己的超管用户什么权限?
Mysql连接方式
Mysql连接方式分为两种:tcp/ip连接、socket连接。
tcp/ip:此种方式要指定-h(--host)填写Mysql服务端IP参数远程连接,为了保障安全一般root会禁止进行网络连接。
连接命令: /usr/local/mysql/bin/mysql -h192.168.9.11 -P3306 -uroot -p123456
socket:此种方式不指定-h参数,本地连接,一般仅做为root用户登陆使用,socket也是一种通讯方式,只不过是以文件方式承现。
连接命令: /usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/tmp/mysql.sock
Mysql用户密码管理
对Mysql连接方式有个基本了解后,我们开始进行用户、密码、权限方面的讲解,并将老师在生产中因权限配置不当遇到的故障问题介绍给大家,首先我们来看下用户的创建。
1.连接Mysql:
我们此处是使用维护的本地socket方式进行管理
/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/tmp/mysql.sock
2.创建普通用户:
此处创建用户需要有对mysql数据库的操作权限,因为创建命令其实就是在mysql数据库中的权限表进行添加用户与权限的对应记录,如user表。
create user username@'localhost' identified by 'password'
注意!
? username:登陆使用的用户名
? password:登陆使用的密码
? localhost:此处是Mysql连接时验证的一个额外机制,代表限制远端使用该用户进行连接时,客户端的IP地址范围,此值可以有如下三个选择:
?
1)%:代表可以允许客户端以任意IP访问
2)192.168.18.%:代表可以允许客户端以192.168.18网段的IP地址进行访问,一般生产中使用此方式,仅仅配置某个应用服务器网段的IP地址允许访问
3)localhost:代表只能通过Mysql服务器端进行连接,一般我们创建维护账号时才选择此方式,如root
3.用户密码的管理:
在工作维护期间,一定会是将开发人员的账号进行定期更新的,这时我们可以使用以下方式进行用户密码的修改。
修改当前用户密码:set PASSWORD=PASSWORD('new-password') 修改其他用户密码:set password for root@localhost = password('new-password'); 将用户的密码时间配置为永不过期:alter user root@’localhost’ password expire never;
4.删除某个用户:
Mysql中删除用户没有像Oracle那样有用户归属的对象,删除用户只是将该用户删除,对有此存储过程,触发器的定义或会受到影响,后续讲解时我们会带到存储过程的安全定义级别。
drop user username@'localhost'
5.为某个用户进行权限赋值与回收:
权限赋值可以根据多个级别,可以对整个服务端的管理权限,对全部数据库的操作权限,对单个库,多表,单表的操作权限,我们来看下如何进行配置,如我们配置给某个库内全部的读与更新权限。
赋值:grant select,update on test.* to username@'IP段'; 回收:revoke select,update on test.* from username@'IP段'; with grant option:可以将权限赋于其他用户,该选项一般在生产中不做使用,权限将由DBA进行管控,不存在开发人员互相开通权限情况
6.查看登陆用户及权限信息:
查看当前登陆用户:select user(); 查看某个用户权限:show grants for root@'localhost'
Mysql权限表
Mysql的权限其实就是存储在mysql数据库中一些权限表中的数据信息,在此处我们有必要了解一下Mysql中权限表信息,权限的寻找顺序及作用域。
1.user表:权限生效于全部数据库 1)验证信息:user host password/authentication_string 2)权限信息: 1.库表权限:数据库操作类的权限,select,update..... 2.全局权限:数据库管理类的权限,grant shutdown.... 3.系统权限:查询次、更新次、连接次、并发连接次 2.db表:权限生效于某个数据库 1)验证信息:user,host,db 2)权限信息:create/update/alter 3.tables_priv表:权限生效于某个表 1)验证信息:user,host,db,table_name 2)权限信息:select insert 4.columns_priv表:权限生产于某个列 5.proces_priv表:权限可以生效于全部数据库/某个数据库
mysql会先查找user表的全局权限。
若无权限再查看db/host表的数据库权限。若无权限再查看tables_priv表权限。若无权限再查看column_priv字段权限。若无权限返回错误信息。
关注微信公众号:安徽思恒信息科技有限公司,了解更多技术内容……
猜你喜欢
- 2024-10-09 仅凭一条SQL,领悟MySQL的全貌(一条sql只能使用一个索引吗)
- 2024-10-09 Mysql语法基本操作(笔记)(mysql语法规范有哪些)
- 2024-10-09 好程序员Java学习路线分享MySQL目录结构
- 2024-10-09 MYSQL 登录与退出,查看当前数据库
- 2024-10-09 图解MySQL执行一条SQL的过程(mysql执行sql文件命令步骤)
- 2024-10-09 MySQL文件结构、逻辑架构及sql执行流程分析
- 2024-10-09 MySQL数据库解读之-目录结构(mysql的数据目录)
- 2024-10-09 MySQL命令总结(mysqld命令)
- 2024-10-09 kubernetes-5:mysql容器化(容器 mysql)
- 2024-10-09 MySQL逻辑架构 讲解(mysql逻辑或)
你 发表评论:
欢迎- 最近发表
-
- 数据不丢失 从Windows 11的DEV版降级到正式版
- Win11学院:在Windows11 25905预览版中如何启用Dev Drive
- DEVC++的卸载(devcon卸载驱动)
- win11 dev 开发版 升级攻略完整版
- 最新Windows11+Windows10系统各种版本永久激活密钥以及下载链接
- 想学Python,却还记不住语法?神仙书籍 python背记手册双手奉上
- 如何用Python语言开发大型服务器程序
- 30天Python 入门到精通(python零基础入门到精通)
- 入门扫盲:9本自学Python PDF书籍,让你避免踩坑,轻松变大神!
- 学好Python需要看的4本书推荐(学python好用的书)
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)