数据库(六)

 

前言

本篇博客学习 mysql 的用户管理和使用 python 操作 mysql 的一个模块 pymysql。

mysql 用户管理

因为数据安全对于互联网公司来说是最重要的,不可能随便分配 root 账户,应该按照不同开发岗位分配不同的账户和权限。

用户管理相关表

mysql> use mysql; mysql> show tables;

image-20181125150125323

用户对数据库的权限顺序

mysql 将与用户相关的数据放在 mysql库中,

user->db->tables_priv->columns_priv

如果用户拥有对所有库的访问权,则存储在 user 中;

如果用户拥有对部分库的使用权,则存储在 db 中;

如果用户拥有对部分表的使用权,则存储在 tables_priv 中;

如果用户拥有对表中某些字段的使用权,则存储在 columns_priv 中。

用户授权设置

创建新账户

mysql> create user 用户名@ip identified by '密码';
mysql> create user musibii@127.0.0.1 identified by '123';

创建成功后会在 user 表中查看到:

mysql> select * from user\G;

image-20181125152053447

这样创建的账户是没有任何权限的,可以看出关于权限字段的值全为 N,接下来需要给 musibii 账号分配权限了。

授予用户最高权限

mysql> grant all on *.* to musibii@127.0.0.1 identified by '123';

如果 musibii 账号不存在,那么会在授予权限的时候自动创建账号。

现在查看一下 musibii 账号的权限关系:

授予授予权限

现在除了 grant_priv 权限其他权限都有了,这个权限是授权权限。通过 root 账户授予:

mysql> grant all on *.* to musibii@127.0.0.1 identified by '123' with grant option;

现在可以说这个账号就是一个 root 账户,但是只能在本机登陆。

授予在任何地方登陆权限

mysql> grant all on *.* to musibii@'%' identified by '123';

现在 host 字段对应的值变为了%,意味着可以在任何主机登陆该数据库了。

设置只能访问某个库


                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信