首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL权限角色的演进

这是学习笔记的第1949篇文章

MySQL提供的网络访问模式,主要提供了socket和TCP/IP两类,并且对于每个实例,只能对应一个端口。

在Percona和MariaDB分支中有一个新特性是对于连接数的额外支持,可以配置extra_port和extra_max_connections,在连接数已经溢出的情况下连接到MySQL。

3.2.1 socket连接

socket是一种特殊的文件,也叫做套接字,是应用层与TCP/IP协议族通信的中间软件抽象层.

Socket连接可以理解为服务端的连接,也是MySQL默认使用socket方式连接,这个也是DBA在管理中,如果是在服务端可以使用mysql命令即可连接到数据库的一个原因。mysql服务启动的时候,会去my.cnf配置文件中查找socket文件的路径,即socket文件的生成目录在[mysqld]上指定,如果没有则默认是/tmp/mysql.sock,使用的默认端口为3306。

或者也可以在mysql命令中指定socket路径,比如

mysql --socket=/data/mysql_3306/tmp/mysqld.sock -uroot -p[password] -P3306

3.2.2 TCP/IP连接

TCP/IP连接可以理解为客户端的通用连接方式,它是建立一个基于网络的连接请求,我们对于开发同学所开放的主要是基于TCP/IP方式的连接方式。

使用mysql命令的方式,可以参考;

mysql -h[host] -u[username] -p[password] -P[port]

3.2.3 MySQL访问模式的演进

MySQL的访问模式在版本演进中也在逐步发生变化,通常来说,MySQL的访问模式是基于用户+主机的方式,而真正的数据是在database里面,和Oracle里面的user schema是一个量级的,可以认为用户是权限的载体,而数据库是数据的宿主,用户和数据库关系如下:

而在MySQL 8.0的改进使用了角色。

如果要对用户授权,一个通用的MySQL授权语句如下:

grant select on mytest.* to dev_user_ro@'192.168.6.%' identified by 'mypassword';

注:5.6开始标准授权语句修正为先创建用户然后再授权

用户名,按照多级划分的方式,可以按照“环境_服务名_权限标示”的格式进行命名:

(1)环境

“环境”一般分为生产环境和测试环境,生产环境的用户名以“srv_”开头,测试环境的用户名以“dev_”开头。

(2)服务名

用以标示这个数据库用户所连接的服务。

(3)权限标示

用于进行用户权限类型的标示,可以分为三种权限:只读,基本读写,高级读写,分别用ro,rwl,rwh来表示,一般来说这三种权限的分类如下:

l只读用户ro,只有select权限;

l基本读写用户rwl,除ro的权限外,还有insert,update,delete,exec等权限;

l高级读写用户rwh,除rwl的权限外,还有create,drop,alter等权限。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190415A004JS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券