Otorgar permisos de tabla y columna de MySQL usando Python

El servidor MySQL es un sistema de administración de bases de datos relacionales de código abierto que es un soporte importante para las aplicaciones basadas en la web. Las bases de datos y las tablas relacionadas son el componente principal de muchos sitios web y aplicaciones, ya que los datos se almacenan e intercambian a través de la web. Para acceder a bases de datos MySQL desde un servidor web, utilizamos varios módulos en Python como PyMySQL, mysql.connector, etc. 

En este artículo, vamos a otorgar permisos a un usuario para acceder a una base de datos y sus tablas MySQL. La sentencia CREATE USER crea una cuenta de usuario sin privilegios. La declaración para crear un usuario en MySQL se da a continuación.

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

El usuario anterior puede iniciar sesión en MySQL Server, pero no puede hacer nada como consultar datos y seleccionar una base de datos de las tablas. En nuestro caso,   el nombre de usuario es geeksforgeeks y la contraseña para iniciar sesión es 1234

Para cambiar el usuario en el cliente MySQL, use el siguiente comando:

SYSTEM MYSQL -u geeksforgeeks -p1234;

Para verificar el usuario actual, se puede usar el siguiente comando:

SELECT user();

La declaración anterior podría usarse para conocer los permisos del usuario. 

SHOW GRANTS FOR user_name@localhost;

Vea el siguiente ejemplo:

Privilegios predeterminados

Nota: Para otorgar permisos al usuario geeksforgeesks , debe iniciar sesión en la cuenta raíz . Los usuarios no pueden otorgarse permisos a sí mismos. 

A continuación se muestra el programa python para agregar permisos de tabla y columna al usuario geeksforgeeks :

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()

Producción

Salida de Python

Terminal MySQL

salida mysql

Pudimos ver que se han proporcionado permisos para CREAR y ALTERAR tablas MySQL al usuario geeksforgeeks .

Publicación traducida automáticamente

Artículo escrito por rohanchopra96 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *