You are currently viewing Предоставьте права доступа к таблицам и столбцам MySQL с помощью Python

Предоставьте права доступа к таблицам и столбцам MySQL с помощью Python

Сервер MySQL — это система управления реляционными базами данных с открытым исходным кодом, которая является основной поддержкой веб-приложений. Базы данных и связанные с ними таблицы являются основным компонентом многих веб-сайтов и приложений, поскольку данные хранятся и обмениваются ими через Интернет. Для доступа к базам данных MySQL с веб-сервера мы используем различные модули на Python, такие как PyMySQL, mysql.connector и т.д.

В этой статье мы собираемся предоставить пользователю разрешения на доступ к базе данных и ее таблицам MySQL. Инструкция CREATE USER создает учетную запись пользователя без привилегий. Инструкция по созданию пользователя в MySQL приведена ниже.

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

Вышеуказанный пользователь может войти на сервер MySQL, но не может ничего делать, например, запрашивать данные и выбирать базу данных из таблиц. В нашем случае, имя пользователя, и Пароль для входа в систему это 1234.

Чтобы изменить пользователя в клиенте MySQL, используйте приведенную ниже команду:

SYSTEM MYSQL -u geeksforgeeks -p1234;

Чтобы проверить текущего пользователя, можно воспользоваться приведенной ниже командой:

SELECT user();

Приведенное выше утверждение может быть использовано для определения разрешений пользователя.

SHOW GRANTS FOR user_name@localhost;

См. Приведенный ниже пример:

Примечание: Для предоставления разрешений пользователю вундеркинды-форджески вы должны войти в учетная запись root. Пользователи не могут предоставлять разрешения самим себе.

Ниже приведена программа на python для добавления разрешений для таблиц и столбцов пользователю вундеркинды:

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

Выход

Терминал MySQL

Мы могли видеть, что разрешения на Создать и изменять Таблицы MySQL были предоставлены пользователю вундеркинды.