python - 使用 python mysql 连接器与 mysql 数据库交互所需的最低权限是多少?
问题描述
我通过执行创建了一个自定义用户:
mysql> CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypwd';
mysql> GRANT select, update, alter ON mydb.* TO myuser@localhost;
我的用户只需要从数据库中读取数据、更新条目并使用 ALTER 命令更改一些表的结构。
现在我想执行以下脚本:
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="myuser",
passwd="mypwd",
database="mydb")
print(db);
我不完全理解为什么,但出现以下错误:
Traceback (most recent call last):
File "conneciton.py", line 3, in <module>
weewxDb = mysql.connector.connect(
File "/usr/lib/python3/dist-packages/mysql/connector/__init__.py", line 173, in connect
return MySQLConnection(*args, **kwargs)
File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 102, in __init__
self.connect(**kwargs)
File "/usr/lib/python3/dist-packages/mysql/connector/abstracts.py", line 735, in connect
self._open_connection()
File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 250, in _open_connection
self._do_auth(self._user, self._password,
File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 172, in _do_auth
self._auth_switch_request(username, password)
File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 216, in _auth_switch_request
raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1044 (42000): Access denied for user 'myuser'@'localhost' to database 'mydb'
我认为我的用户缺少一些特权。但是哪个?我想给他尽可能少的权限。
解决方案
推荐阅读
- php - 如何显示结束日期 31-03- 年(取决于 start_date)?
- javascript - 创建要添加的函数,使得 add(1,2)(3,...k)(1,2,3)...(n) 应该对所有数字求和
- git - git:从功能分支多次合并后创建一个干净的历史记录,该分支随后被重新设置
- swift - Swift4 - UIButton 在 UIView 中使用 addTarget 时出错
- php - 有没有办法通过 PHP 服务器发送 Fabric.io 购买事件?
- java - 为什么key的hashcode有大于等于小于等于三种情况?
- python - 寻找 json 键以在 python 中打印不带括号的内容
- php - 我如何使用 PHP 在文本中隐藏一些字符
- photoshop - 将具有高 DPI 和低像素的图像转换为低 DPI 和高像素
- python - 如何在 Windows 10 上的 Python3 上安装 lmfit 包