📌  相关文章
📜  使用Python授予 MySQL 表和列权限

📅  最后修改于: 2022-05-13 01:54:19.230000             🧑  作者: Mango

使用Python授予 MySQL 表和列权限

MySQL 服务器是一个开源的关系数据库管理系统,是对基于 Web 的应用程序的主要支持。数据库和相关表格是许多网站和应用程序的主要组成部分,因为数据是通过网络存储和交换的。为了从 Web 服务器访问 MySQL 数据库,我们使用Python中的各种模块,例如 PyMySQL、mysql.connector 等。

在本文中,我们将授予用户访问数据库及其 MySQL 表的权限。 CREATE USER语句创建一个没有权限的用户帐户。下面给出了在 MySQL 中创建用户的语句。

CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'password';

上述用户可以登录MySQL Server,但不能进行查询数据和从表中选择数据库等操作。在我们的例子中, user_namegeeksforgeeks ,登录密码1234

要更改 MySQL 客户端中的用户,请使用以下命令:

SYSTEM MYSQL -u geeksforgeeks -p1234;

要检查当前用户,可以使用以下命令:

SELECT user();

上面的语句可以用来知道用户的权限。

SHOW GRANTS FOR user_name@localhost;

请参阅以下示例:

默认权限

注意:要向用户geeksforgeesks授予权限,您必须登录到root帐户。用户不能为自己授予权限。

下面是为用户geeksforgeeks添加表和列权限的Python程序

Python3
# import required module
import pymysql
 
 
# establish connection to MySQL
connection = pymysql.connect(
   
    # specify host
    host='localhost',
   
    # specify root account
    user='root',
     
    # specify password for root account
    password='1234',
     
    # default port number is 3306 fro MySQL
    port=3306
)
 
 
# make a cursor to run sql queries
mycursor = connection.cursor()
 
# granting all permissions on all databases and their
# tables of geeksforgeeks user permission also includes
# table and column grants
mycursor.execute("Grant all on *.* to geeksforgeeks@localhost")
 
# print all privileges of geeksforgeeks user
mycursor.execute("Show grants for geeksforgeeks@localhost")
result = mycursor.fetchall()
print(result)
 
# commit privileges
mycursor.execute("Flush Privileges")
 
# close connection to MySQL
connection.close()


输出

Python输出

MySQL终端

MySQL 输出

我们可以看到CREATEALTER MySQL 表的权限已提供给用户geeksforgeeks