mysql用户管理和pymysql模块

时间:2023-03-09 17:59:08
mysql用户管理和pymysql模块

一:mysql用户管理

mysql是一个tcp的服务器,用于操作服务器上的文件数据,接收用户端发送的指令,而接收指令时就

需要考虑安全问题。

在mysql自带的数据库中有4个表是用于用户管理的,分别是user,db,tables_priv,columns_priv,其

优先级分别是从高到低。

1:创建用户的语句:

语法:create user  用户名@"主机地址"  identified by "密码";

这里的主机地址不是服务器地址,而是表示这个账户可以在哪台电脑上登录。

2:授权的语句:

语法:grant [权限的名称 select insert.... | all ] on 数据库.表名 to 用户名@"主机地址";

3:授权的语句之授权给别的账户:

语法:grant [权限的名称 select insert.... | all ] on 数据库.表名  to 用户名@"主机地址" with grant option;

with grant option 这个用户可以将他有的权限授予给别的账户,如果授权时用户不存在,则会直接自动创建用户。

4:删除权限:

语法:revoke 权限的名称 on 数据库.表名 from 用户名@"主机名";

5:刷新/重载权限表:

语法:flush privileges;

6:删除用户:

语法:drop user 用户名@"主机地址";

二:pymysql模块:python编写的mysql客户端

pymysql模块使用步骤:

1:首先与数据库服务器建立链接

2:获取游标对象     (用于发送和接收数据)

3:用游标对象执行sql语句

4:使用fetch方法来获取执行的结果

5:关闭链接     (先关游标,再关链接)

游标的常用方法:

1:创建游标:conn.cursor   (指定查询结果的数据类型)

2:execute   (用于执行sql)

3:fetchone   (当sql只有一条记录时)

fetchmany   (sql有多条并且需要指定条数)

fetchall   (多条)

4:scroll   (用于修改游标的当前位置)

注意:pymysql  默认不提交修改  这里的修改指的是对表中记录的操作不提交,但是像删库,删表是无法撤销的。