首页 > 解决方案 > 使用 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'

我认为我的用户缺少一些特权。但是哪个?我想给他尽可能少的权限。

标签: pythonmysqlsqlpython-3.xmysql-connector-python

解决方案


推荐阅读